我正在学习如何阅读文本文件。我用这种方式:
f=open("sample.txt")
print(f.read())
如果我自己输入txt文件,效果很好。但是,当我从网络上的新闻文章中复制文本时,它产生了以下错误:
UnicodeEncodeError: 'charmap' codec can't encode charater '\u2014' in position 738: character maps to undefined
我尝试将Notepad ++中的Encoding设置更改为UTF-8,因为我在某处阅读了该设置是由于
我也尝试使用:
f=open("sample.txt",encoding='utf-8')
从这里
但是它仍然没有用。
您在Windows上,尝试打印到控制台。print()引发异常。
Windows控制台仅本机支持8位代码页,因此您所在区域之外的所有内容都会中断(尽管人们对chcp 65001的看法是什么)。
您需要安装并使用https://github.com/Drekin/win-unicode-console。该模块从底层与控制台API进行对话,为输入和输出提供对多字节字符的支持。
或者,不要打印到控制台,也不要将您的输出写到使用编码打开的文件中。例如:
with open("myoutput.log", "w", encoding="utf-8") as my_log:
my_log.write(body)
确保使用正确的编码打开文件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句