我有一个包含unicode“û”的文件。但是,无法正确读取,如以下测试用例所示:
print("û")
with open(r"testfile.txt") as f:
for line in f:
print(line)
哪个输出:
û
û
IDE可以正确显示字符 - 但是从读取文件开始会显示另一个字符。
如果我在调试器中执行它,我会看到f
具有“编码”cp1252。不是unicode。
那我怎么“修理”这个?
在notepad ++中打开文件告诉我该文件确实是UTF-8。如果我手动将文件更改为windows-codepage 1252,它似乎有效。但那不是我想要的。
答案 0 :(得分:2)
您可以在打开文件时指定编码:
with open(r"testfile.txt", encoding='utf-8') as f:
答案 1 :(得分:1)
打开文件时,您需要将encoding参数用作“utf-8”。 看起来像下面的with with open()。 您可能想要阅读更多here
encoding='utf-8'