我无法使用任何中文字符打开文件,并将设置为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'
,现在我不知道现在发生了什么。
答案 0 :(得分:1)
您看到的例外来自打印您的数据。打印要求您将数据编码为终端或Windows控制台使用的编码。
您可以从异常(以及回溯中看到这一点,但您没有包含它);如果您在解码数据时遇到问题(这是从文件中读取时会发生的情况),那么您将获得UnicodeDecodeError
,而是获得UnicodeEncodeError
。
您需要调整终端或控制台编码,或者不打印数据
有关问题排查帮助,请参阅http://wiki.python.org/moin/PrintFails。