为什么在控制台中运行Python脚本时会引发UnicodeDecodeError,而在Eclipse / PyDev中却没有?

时间:2013-07-24 15:32:01

标签: python-2.7 unicode pydev python-unicode

我的脚本在Windows 8控制台中运行时会引发UnicodeDecodeError,但在Eclipse / PyDev中作为启动配置运行时则不会。 PyDev环境和从unicode控制台运行python.exe的区别在哪里?

1 个答案:

答案 0 :(得分:5)

区别在于默认编码。您可以通过sys.getdefaultencoding()检索此内容。您会注意到Windows 8 shell中的默认编码是ascii,而PyDev默认启动配置的默认编码为项目的默认编码,默认编码默认为Cp1252

在代码中的默认编码中有一些(有问题的)技巧要改变,主要是reload(sys); sys.setdefaultencoding('myencoding')。 Ian Bicking在他的博客文章The Illusive setdefaultencoding中记录了这一点。

如果您只想将PyDev行为与您在控制台(或生产服务器)上看到的行为对齐,则可以更改启动配置属性的“公共”选项卡上的默认编码:

enter image description here