看來很多文章,不過我覺得最有效的還是改原始碼,因為我用的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') #這句是我新增的
親測可用!
參考文章:
Python3中zipfile模組檔名亂碼問題
linux下zip檔案亂碼已經是乙個常見問題了,再加上python想不遇到亂碼問題都難。在zipfile.zipfile中獲得的filename有中日文則很大可能是亂碼,這是因為 在zip標準中,對檔名的 encoding 用的不是 unicode,而可能是各種軟體根據系統的預設字符集來採用 此為猜...
Python3 批量修改檔名
1 下圖原檔案包含 itjc8.com 想去掉 2 python 參考 如下 created on 2019年1月29日 author yvon fajin import os os.path time defrename file,keyword file 檔案路徑 keyword 需要修改的檔案...
Linux windows下檔名和內容亂碼
一 利用iconv命令進行編碼轉換檔案內容編碼轉換 iconv命令用於轉換指定檔案的編碼,預設輸出到標準輸出裝置,亦可指定輸出檔案。用法 iconv 選項.檔案.有如下選項可用 輸入 輸出格式規範 f,from code 名稱 原始文字編碼 t,to code 名稱 輸出編碼 資訊 l,list 列...