【发布时间】:2013-07-24 04:45:00
【问题描述】:
我的脚本在 Windows 8 控制台中运行时会引发 UnicodeDecodeError,但在 Eclipse/PyDev 中作为启动配置运行时不会。 PyDev 环境和从控制台运行 python.exe 在 unicode 方面的区别在哪里?
【问题讨论】:
标签: python-2.7 unicode pydev python-unicode
我的脚本在 Windows 8 控制台中运行时会引发 UnicodeDecodeError,但在 Eclipse/PyDev 中作为启动配置运行时不会。 PyDev 环境和从控制台运行 python.exe 在 unicode 方面的区别在哪里?
【问题讨论】:
标签: python-2.7 unicode pydev python-unicode
区别在于默认编码。您可以通过sys.getdefaultencoding() 检索此信息。您会注意到 Windows 8 shell 中的默认编码是 ascii,而 PyDev 将启动配置的默认编码默认为项目的默认编码,而项目的默认编码本身默认为 Cp1252。
有一些(有问题的)技巧可以更改代码中的默认编码,主要是reload(sys); sys.setdefaultencoding('myencoding')。 Ian Bicking 在他的博文 The Illusive setdefaultencoding 中记录了这一点。
如果您只想将 PyDev 行为与您在控制台(或生产服务器上)中看到的内容保持一致,您可以在启动配置属性的“通用”选项卡上更改默认编码:
【讨论】: