解決Ubunu等Linux發行版解壓縮檔案出現亂碼的問題。

在中文Linux環境解壓縮檔案,有時會遇到使用Windows區域字元編碼,譬如Big5、GBK、SHIFT-JIS,致使解出來是亂碼的情況。若是程式,可能還會無法正常執行呢。
譬如,從DLsite下載的壓縮檔,很多都有日文編碼亂碼問題。
似乎很多本本繪師都是在日文Windows作業然後輸出上傳,直接繼承了SHIFT-JIS編碼,於是在中文Windows解壓縮就會出現亂碼。更別說Linux了。
一般來說壓縮檔案應該用UTF-8才有跨平臺相容性。可是Windows 11直到今天仍然預設使用預設區域的Code Page編碼,譬如繁體中文就會用Big5編碼,令人頭痛。反之,在Linux壓縮檔案的話,程式通常會自動選取UTF-8編碼。
我看只有像《愛上火車》這種有製作多國語言特典大禮包(花500日元就送你遊戲 + 10部影片 + 抱枕CG圖 + ASMR音聲)的開發者才會懂得特別用UTF-8壓縮檔案吧!
Linux並沒有Locale Emulator,要用其他方式處理。
其實只要告訴解壓縮軟體,用特定區域編碼去解壓縮檔案就可以了!

GUI方面的軟體,PeaZip無法解,KDE Ark也不行。可見,除了WinRAR(需要透過Wine執行)之外,Linux沒有一個GUI軟體能解壓縮需要切換編碼的檔案。
那麼有以下解方:
7-Zip #
跨平臺的解壓縮軟體,Linux沒有官方的GUI。安裝指令:
sudo apt install p7zip-full在下載目錄打開終端機,使用日文編碼解壓縮:
7z x -mcp=932 "壓縮檔.zip"WinRAR #
授權:專有軟體
-
透過Wine安裝WinRAR
-
打開檔案 → 選項 → 切換編碼,選取日文(SHIFT-JIS),再解壓縮。
unar #
macOS移植來的工具unar (The Unarchiver)
安裝
sudo apt install unar在下載目錄打開終端機,用-e指定日文編碼,或者不加,讓它自動偵測檔案編碼:
unar -e shift_jis "壓縮檔.zip"unzip #
大多數Linu發行版都有內建的unzip指令,沒有就安裝:
sudo apt install unzip在下載目錄打開終端機,解壓縮,它可以用-O指定日文編碼:
unzip -O shift-jis "壓縮檔.zip"不過用的時候我發現:はあ!?居然要Arch Linux和Ubuntu 26.04的unzip才有支援日文的patch,Debian 13收的不行。