我有包含许多 UTF-8 xml 文件的 zip 档案。这些文件主要包含英文标签和文本,但少数标签包含非英文文本。我打开 zip 文件并解析其中的 xml 文件没有问题,但是非英文文本会丢失它的编码。
当一个 xml 文件被提取并在 Notepad++ 中打开时,非英文文本如下所示:
Курс карбованца к доллару не изменился на Украинской Межбанковской Валютной Бирже (УМВБ) - 176.100.
当它被提取并在 Python 中(在 linux 机器上)读取时,文本如下所示:
ÐÑÑÑ ÐºÐ°ÑбованÑа к доллаÑÑ Ð½Ðµ изменилÑÑ Ð½Ð° УкÑаинÑкой ÐежбанковÑкой ÐалÑÑной ÐиÑже (УÐÐÐ) - 176.100.
我的代码如下所示:
def parse(self, fp):
# open/decompress zip file
with zipfile.ZipFile(fp, 'r') as f:
# get all files in zip
comp_files = f.namelist()
for comp_file in comp_files:
cfp = f.open(comp_file, 'r')
# parse xml
tree = ElementTree.parse(cfp)
...parsing...
我已经尝试解码/编码来自 cfp 的文本,并用 codecs.EncodedFile() 和 utf_8 和 utf_8_sig 的输入编码包装它,没有任何变化。我该怎么做才能修复非英文文本?