参考:
https://www.cnblogs.com/yaomaomao/p/8671344.html
https://www.cnblogs.com/limengjie0104/archive/2018/06/17/9192449.html
步骤:
1、编辑源码“./Python3/Lib/zipfile.py”。
2、修改以下两处代码,增加“解决文件名中文乱码问题”部分。
if flags & 0x800:
# UTF-8 file names extension
filename = filename.decode('utf-8')
else:
# Historical ZIP filename encoding
filename = filename.decode('cp437')
# 解决文件名中文乱码问题
try:
filename = filename.encode("cp437").decode('gbk')
except:
filename = filename.endcode('utf-8').decode('utf-8')
if zinfo.flag_bits & 0x800:
# UTF-8 filename
fname_str = fname.decode("utf-8")
else:
fname_str = fname.decode("cp437")
# 解决文件名中文乱码问题
try:
fname_str = fname_str.encode("cp437").decode('gbk')
except:
fname_str = fname_str.encode("utf-8").decode('utf-8')