【问题标题】:Why is a UnicodeDecodeError raised when running Python script in console, but not in Eclipse/PyDev?为什么在控制台中运行 Python 脚本时会引发 UnicodeDecodeError,而不是在 Eclipse/PyDev 中?
【发布时间】:2013-07-24 04:45:00
【问题描述】:

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

【问题讨论】:

    标签: python-2.7 unicode pydev python-unicode


    【解决方案1】:

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

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

    如果您只想将 PyDev 行为与您在控制台(或生产服务器上)中看到的内容保持一致,您可以在启动配置属性的“通用”选项卡上更改默认编码:

    【讨论】:

      猜你喜欢
      • 2014-07-03
      • 1970-01-01
      • 2021-10-06
      • 1970-01-01
      • 2014-05-01
      • 2016-04-04
      • 1970-01-01
      • 2021-10-07
      • 1970-01-01
      相关资源
      最近更新 更多