相关疑难解决方法(0)

读取包含UTF-8 xml文件的zip的问题

我有包含许多UTF-8 xml文件的zip存档.这些文件主要包含英文标签和文本,但有些标签包含非英文文本.我打开zip文件并解析其中的xml文件没有问题,但是非英文文本丢失了它的编码.

当在Notepad ++中提取并打开xml文件时,非英语文本如下所示:

???? ?????????? ? ??????? ?? ????????? ?? ?????????? ????????????? ???????? ????? (????) - 176.100.
Run Code Online (Sandbox Code Playgroud)

当它被Python(在linux盒子上)提取和读取时,文本看起来像:

ÐÑÑÑ ÐºÐ°ÑбованÑа к доллаÑÑ Ð½Ðµ изменилÑÑ Ð½Ð° УкÑаинÑкой ÐежбанковÑкой ÐалÑÑной ÐиÑже (УÐÐÐ) - 176.100.
Run Code Online (Sandbox Code Playgroud)

我的代码看起来像:

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...
Run Code Online (Sandbox Code Playgroud)

我尝试解码/编码来自cfp的文本,并用codecs.EncodedFile()和utf_8和utf_8_sig的输入编码包装,没有任何变化.我该怎么做来修复非英文文本?

python zip utf-8

1
推荐指数
1
解决办法
3129
查看次数

标签 统计

python ×1

utf-8 ×1

zip ×1