怪王外传续集,创维电视售后电话,七彩连珠在线游戏
上传一个.zip格式的压缩文件
解压该test.zip压缩文件
解压zip文件时,遍历其目录下所有子文件,同时计算出单个子文件的有效代码行数
这时,发现解压后的子文件名中文出现乱码,如下图:
1、解压过程中,发现解压的文件内容正常;
2、使用的是第三方库zipfile模块,因为第1步得到正常的文件内容,本地业务逻辑可先不排查;
3、首先检查zipfile的源码中,针对编码/解码的执行过程仔细排查发现:
zipfile中根据文件 flag 检测的时候,只支持 cp437 和 utf-8
找到下面两处,并追加修正后,乱码现象解决:(追加的decode编码可根据实际情况修改,如linux环境下乱码采用.decode('gbk'))
# zipfile.py # 第一处 if flags & 0x800: # UTF-8 file names extension filename = filename.decode('utf-8') else: # Historical ZIP filename encoding filename = filename.decode('cp437') # 追加此句 filename = filename.encode("cp437").decode('utf-8') # 第二处 if zinfo.flag_bits & 0x800: # UTF-8 filename fname_str = fname.decode("utf-8") else: fname_str = fname.decode("cp437") # 追加此句 fname_str = fname_str.encode("cp437").decode('utf-8')
解决后,正常显示:
(完)
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
python求numpy中array按列非零元素的平均值案例
网友评论