Question
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.
How-To
Here is a simpler method (hack) that gives you back the setdefaultencoding() function that was deleted from sys:
- # sys.setdefaultencoding() does not exist, here!
- import sys
- reload(sys) # Reload does the trick!
- sys.setdefaultencoding('UTF8')
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).
沒有留言:
張貼留言