解決python3解壓檔名亂碼問題(unzip)

2022-09-18 12:09:14 字數 737 閱讀 9808

看來很多文章,不過我覺得最有效的還是改原始碼,因為我用的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 列...