0

我无法打开任何中文字符的文件,编码设置为utf-8

text = open('file.txt', mode='r', encoding='utf-8').read()
print(text)

UnicodeEncodeError: 'charmap' codec can't encode character '\u70e6' in position 0: character maps to <undefined>

该文件是 100% utf-8。
http://asdfasd.net/423/file.txt
http://asdfasd.net/423/test.py
如果我删除encoding='utf-8'一切正常。

编码有什么问题?
我总是encoding='utf-8'在打开文件时使用,我现在不知道现在发生了什么。

4

1 回答 1

1

您看到的异常来自打印数据。打印要求您将数据编码为终端或 Windows 控制台使用的编码。

您可以从异常中看到这一点(以及从回溯中,但您没有包括它);如果您在解码数据时遇到问题(当您从文件中读取时会发生这种情况),那么您会得到 a UnicodeDecodeError,而是得到 a UnicodeEncodeError

您需要调整终端或控制台编码,或者不打印数据

有关故障排除帮助,请参阅http://wiki.python.org/moin/PrintFails

于 2013-06-04T20:25:44.197 回答