這裡介紹如何在 Linux 中解壓縮包含中文字的壓縮檔,解決 big5 編碼會產生亂碼的問題。
如果在 Windows 中建立含有中文檔名的 zip 壓縮檔,拿到 Linux 中解壓縮時,原本的中文檔名就會很變成一堆亂碼。
遇到這樣的狀況可以使用 convmv
來解決,首先安裝這個工具,以 Debian 系列的 Linux 來說,可用 apt 安裝:
sudo apt-get install convmv
接著使用 unzip
配合 LANG=C
來解壓縮,這樣可以讓 unzip
以原本的 big5 編碼來解壓縮:
LANG=C unzip file.zip
其中 file.zip
就是要解壓縮的 zip 檔。如果習慣使用 7z
的人,也可以加上 LANG=C
來解壓縮:
LANG=C 7z x file.zip
而解壓縮之後,檔案名稱看起來會像這樣:
這裡解壓縮出來的檔案名稱已經是使用 big5 編碼了,只不過終端機的預設編碼是萬國碼(utf8),所以看起來還是亂碼,接著在這個含有中文檔名的目錄中,使用 convmv
將 big5 編碼的檔案名稱轉換為萬國碼(utf8):
convmv -f big5 -t utf8 -r --notest *
轉換完成之後,中文的檔案名稱就會恢復正常了:
Image Credit:Charles Chen