我有一个用Python程序处理的带有德语重音字符的文件。例如,当我用Notebook打开文件时,它会正确显示,例如"Übersetzt"。然而,当我打印这些术语时,它们会被损坏为"œbersetz"。此代码页更改发生在何处?如何更正此问题?
我看到了两个可能的原因:
- 文件编码-python3假定
utf-8
,因此如果您的文件使用其他编码,可能会出现故障 - 您的终端无法输出
Ü
检查2更容易。只需进行
import unicodedata
print(unicodedata.lookup('LATIN CAPITAL LETTER U WITH DIAERESIS'))
如果它输出Ü
,这意味着您的终端能够输出它,并且您应该找到文件中使用的编码。
解决方案是编码='utf-8'选项
open('d:\aatemp\C814LogicClass.htm',编码='tf-8'(