在python中读取unicode文件
问题描述:
那么我有一个包含unicode“û”的文件。然而,这不是正确地读取为处于以下测试例示出:在python中读取unicode文件
print("û")
with open(r"testfile.txt") as f:
for line in f:
print(line)
,其输出:
û
û
IDE可以正确显示的字符 - 然而从阅读另一个字符被示出该文件。 如果我在调试器中执行它,我看到f
作为“编码”cp1252。不是unicode。
那么我该如何“修复”呢?
在记事本++中打开文件告诉我文件真的是UTF-8。如果我手动将文件更改为Windows代码页1252它似乎工作。但那不是我想要的。
答
打开文件时,可指定编码:
with open(r"testfile.txt", encoding='utf-8') as f:
每默认'open'使用由['locale.getpreferredencoding']返回的编码阅读起来(https://docs.python.org/3/library/locale .html#locale.getpreferredencoding),它基本上默认为windows上的cp1252。 – syntonym