我有一个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->文本文件编码):
chcp 1252
在脚本的开头,我添加:
# -*- coding: cp1252 -*-
但它什么都没改变。
它适用于Eclipse控制台,因此我不想为Windows控制台解码/编码所有字符串。
你有任何想法或建议来解决这个问题吗?
答案 0 :(得分:0)
您可以尝试将eclipse和windows cmd行的编码设置为Utf-8并查看是否有效,除非您绝对需要cp1252编码。
答案 1 :(得分:0)
问题是Python会期望你的8位字符串只包含ASCII,而不是Unicode。 u'\xc9
是Unicode字符。也许Eclipse比Windows 7控制台更友好。您应该使用unicode
命令将字符转换为Unicode:
value = unicode(value, "utf-8")
有关详情,请参阅this article。