分類: Linux

Linux 解壓縮中文檔名的 Zip 壓縮檔,解決 Big5 編碼產生亂碼問題

這裡介紹如何在 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 編碼的檔案

這裡解壓縮出來的檔案名稱已經是使用 big5 編碼了,只不過終端機的預設編碼是萬國碼(utf8),所以看起來還是亂碼,接著在這個含有中文檔名的目錄中,使用 convmv 將 big5 編碼的檔案名稱轉換為萬國碼(utf8):

convmv -f big5 -t utf8 -r --notest *

轉換完成之後,中文的檔案名稱就會恢復正常了:

正常的中文檔名

Image Credit:Charles Chen

G. T. Wang

個人使用 Linux 經驗長達十餘年,樂於分享各種自由軟體技術與實作文章。

Recent Posts

光陽 KYMCO GP 125 機車接電發動、更換電瓶記錄

本篇記錄我的光陽 KYMCO ...

2 年 ago

[開箱] YubiKey 5C NFC 實體金鑰

本篇是 YubiKey 5C ...

3 年 ago

[DIY] 自製竹火把

本篇記錄我拿竹子加上過期的苦茶...

3 年 ago