【发布时间】:2018-03-25 16:22:51
【问题描述】:
我有一个包含 unicode "û" 的文件。然而,如以下测试用例所示,这不能正确读取:
print("û")
with open(r"testfile.txt") as f:
for line in f:
print(line)
哪些输出:
û
û
IDE 可以正确显示字符 - 但是从读取文件中会显示另一个字符。
如果我在调试器中执行它,我会看到f 具有“编码”cp1252。不是 unicode。
那么我该如何“解决”这个问题呢?
在记事本++ 中打开文件告诉我该文件确实是UTF-8。如果我手动将文件更改为 windows-codepage 1252,它似乎可以工作。但这并不是我真正想要的。
【问题讨论】:
-
默认
open使用locale.getpreferredencoding返回的编码,在windows上基本上默认为cp1252。