解决python3解压文件名乱码问题(unzip)

看来很多文章,不过我觉得最有效的还是改源码,因为我用的sublime text 3有插件Anaconda可以很方便的跳转到源码文件,你也可以入python3 的安装目录, 搜索 zipfile.py这个文件,改两个地方

找到:

            if zinfo.flag_bits & 0x800:
                # UTF-8 filename
                fname_str = fname.decode("utf-8")
            else:
                # fname_str = fname.decode("cp437")  #这句原来是没有注释的,把这句注释掉
                #我改的
                fname_str = fname.decode("gbk")  #这句是我添加的

还有:

            if flags & 0x800:
                # UTF-8 file names extension
                filename = filename.decode('utf-8')
            else:
                # Historical ZIP filename encoding
                # filename = filename.decode('cp437')  #这句原来是没有注释的,把这句注释掉
                # 我改的
                filename = filename.decode('gbk')  #这句是我添加的

亲测可用!

参考文章:https://blog.csdn.net/tian544556/article/details/78635840

 

你可能感兴趣的:(解决)