I have many "can't encode" and "can't decode" problems with Python when I run my applications from the console. But in the Eclipse PyDev IDE, the default character encoding is set to UTF-8, and I'm fine.
I searched around for setting the default encoding, and people say that Python deletes the
sys.setdefaultencoding function on startup, and we can not use it.
So what's the best solution for it?
Here is a simpler method (hack) that gives you back the
setdefaultencoding() function that was deleted from
import sys # sys.setdefaultencoding() does not exist, here! reload(sys) # Reload does the trick! sys.setdefaultencoding('UTF8')
(Note for Python 3.4+:
reload() is in the
This is not a safe thing to do, though: this is obviously a hack, since
sys.setdefaultencoding() is purposely removed from
sys when Python starts. Reenabling it and changing the default encoding can break code that relies on ASCII being the default (this code can be third-party, which would generally make fixing it impossible or dangerous).