我的脚本在Windows 8控制台中运行时会引发UnicodeDecodeError,但在Eclipse / PyDev中作为启动配置运行时则不会。 PyDev环境和从unicode控制台运行python.exe的区别在哪里?
答案 0 :(得分:5)
区别在于默认编码。您可以通过sys.getdefaultencoding()
检索此内容。您会注意到Windows 8 shell中的默认编码是ascii
,而PyDev默认启动配置的默认编码为项目的默认编码,默认编码默认为Cp1252
。
在代码中的默认编码中有一些(有问题的)技巧要改变,主要是reload(sys); sys.setdefaultencoding('myencoding')
。 Ian Bicking在他的博客文章The Illusive setdefaultencoding中记录了这一点。
如果您只想将PyDev行为与您在控制台(或生产服务器)上看到的行为对齐,则可以更改启动配置属性的“公共”选项卡上的默认编码: