【发布时间】:2012-05-06 11:43:44
【问题描述】:
我从文件中读取了一些字符串,当我尝试在 Windows 控制台中打印这些 utf-8 字符串时,出现错误
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc4 in position 0: ordinal not in range(128)
我尝试使用 "chcp 65001" 将控制台编码设置为 utf-8 但比我收到此错误消息
LookupError: unknown encoding: cp65001
【问题讨论】:
-
在 Python 3.3 中修复。
-
python 2.7 有一些解决方法吗?
-
这个问题已经出现过几次了。这是一个可能有效也可能无效的解决方法的示例:stackoverflow.com/questions/5419/…
-
Daira Hopwood 在 878972 上的回答就是答案。在 2.7 上它是 wontfix (因为它似乎比将它向后移植到 3.1 更大的 PITA),在 3.3 中它是 添加的 但它仍然是错误的,即使在 3.5,由于微软的陌生,它取决于当前字体,而不仅仅是
chcp 65001。顺便提一句。相关的环境变量设置为SET PYTHONIOENCODING=utf-8(您也可以尝试mbcs),但两者都不起作用,因为cp65001有问题,而winapi有问题(我不确定'mbcs'应该做什么,但它不会有帮助)。
标签: python encoding windows-console