python3中zipfile解压zip文件,中文文件名存在乱码问题

       python3中使用zipfile解压zip文件,解压后存在中文文件名存在乱码问题,其主要原因是:在zip标准中,对文件名的 encoding 用的不是 unicode,而可能是各种软件根据系统的默认字符集来采用(此为猜测),而zipfile中根据文件 flag 检测的时候,只支持 cp437 和 utf-8。

      通过查证各种资料,该问题有2种解决方法,如下所示:

第一种方式:修改zipfile.py中的源码,使的被decode为cp437后再手动转为正确的编码(亲测有效)。如下所示:

修改zipfile.py中第一处:     

修改zipfile.py中第二处:

     参见:https://blog.csdn.net/tian544556/article/details/78635840

                https://blog.csdn.net/chouzhou9701/article/details/80146766

第二种方式:首先对压缩包进行解压,然后对生成的文件名是乱码的文件,进行转码重命名      

      参见:https://blog.csdn.net/mp9105/article/details/80288549

                 https://blog.csdn.net/ducklikejava/article/details/81039797

你可能感兴趣的:(python3中zipfile解压zip文件,中文文件名存在乱码问题)