【问题标题】:Encoding difference in Eclipse and Windows consoleEclipse 和 Windows 控制台中的编码差异
【发布时间】:2013-06-28 08:40:30
【问题描述】:

我有一个在 Eclipse 控制台(运行配置)中完美工作的 Python 脚本。 当我尝试在 Windows 7 控制台上启动此脚本时,出现编码错误:

UnicodeEncodeError: 'ascii' codec can't encode character u'\xc9' in position 0: ordinal not in range(128)

我将 Windows 控制台的代码页更改为使用与 Eclipse 中相同的代码页(Window->Perference->General->Worspace->Text file encoding):

chcp 1252

在脚本的开头,我添加:

# -*- coding: cp1252 -*-

但它什么也没改变。

它适用于 Eclipse 控制台,所以我不想为 Windows 控制台解码/编码我的所有字符串。

您有什么想法或建议来解决这种行为吗?

【问题讨论】:

  • 我无法在 Windows 7 控制台中重现此问题。哪个版本的 Python?

标签: python windows eclipse encoding console


【解决方案1】:

您可以尝试将 eclipse 和 windows cmd 行的编码都设置为 Utf-8,看看是否可行,除非您绝对需要 cp1252 编码。

【讨论】:

    【解决方案2】:

    问题是 Python 会期望你的 8 位字符串只包含 ASCII,而不是 Unicode。 u'\xc9 是一个 Unicode 字符。也许 Eclipse 比 Windows 7 控制台更友好。您应该使用unicode 命令将字符转换为Unicode:

    value = unicode(value, "utf-8")
    

    请参阅this article 了解更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-13
      • 2013-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-05
      相关资源
      最近更新 更多