1

我有一个 Python 脚本,可以在 Eclipse 控制台(运行配置)中完美运行。当我尝试在 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 控制台解码/编码所有字符串。

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

4

2 回答 2

0

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

于 2013-07-01T12:28:39.623 回答
0

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

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

有关更多信息,请参阅本文

于 2014-03-14T19:08:01.253 回答