国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術(shù)及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - 解決python3中解壓zip文件是文件名亂碼的問題

解決python3中解壓zip文件是文件名亂碼的問題

2021-01-24 00:35tian544556 Python

下面小編就為大家分享一篇解決python3中解壓zip文件是文件名亂碼的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

zip標準中,對文件名的 encoding 用的不是 unicode,而可能是各種軟件根據(jù)系統(tǒng)的默認字符集來采用(此為猜測),因此zipfile中根據(jù)文件 flag 檢測的時候,只支持 cp437 和 utf-8。

具體就是查找 zipfile.py 源代碼找到下面的代碼:

1: if flags & 0x800:
2: # UTF-8 file names extension
3: filename = filename.decode('utf-8')
4: else:
5: # Historical ZIP filename encoding
6: filename = filename.decode('cp437')

可見編碼被正確識別為utf8時的情況外,都會被識別并decode為cp437編碼,但如果實際是gbk等其他編碼時就變?yōu)?a href="/article/88040.html">亂碼了。所以解決的方法在于被decode為cp437后重新再手動轉(zhuǎn)為正確的編碼。

具體代碼如下:

?
1
2
3
4
5
6
7
8
9
#修改代碼
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('gbk')

后面一處同樣如此修改

?
1
2
3
4
5
6
7
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('gbk')

親測有效!

以上這篇解決python3解壓zip文件是文件名亂碼的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:http://blog.csdn.net/tian544556/article/details/78635840

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美日韩国产一区二区三区 | 在线观看黄色电影 | 99国产精品久久久久久久久久 | 成人高清视频在线观看 | 国产在线观看免费 | 亚洲一区有码 | 黄在线看 | 亚洲日本欧美日韩高观看 | 夜夜草视频 | 午夜视频在线免费看 | 山岸逢花在线 | 色视频在线免费观看 | 91久久久久久久久 | 国产精品亚洲成在人线 | 狠狠爱网站 | 在线色网站 | 国产伊人av | 欧美一区二区三区婷婷月色 | 久久一级淫片 | 成人免费小视频 | 狠狠色综合网站久久久久久久 | av黄色在线 | 在线观看午夜免费视频 | 日韩精品免费观看 | 91夜色| 91在线免费视频 | 成人羞羞视频免费 | 99青青草 | 国产精品178页 | 国产成人精品免高潮在线观看 | 毛片在线免费 | 欧美一区二区最爽乱淫视频免费看 | 黄视频网站在线观看 | 欧美一级精品片在线看 | 中文字幕一区二区三区四区五区 | 亚洲 欧美 日韩在线 | 日本丶国产丶欧美色综合 | av电影一区二区 | av在线免费观看网站 | 国产成人精品av | 免费观看av|