解決 Windows 壓縮檔在 Linux 底下出現中文亂碼的問題

日前發現在 Windows 下用 WinRAR 壓縮的中文檔案,在 Ubuntu 底下開啟 (透過 Dropbox) 會出現亂碼,原因出在 rar 套件,改用 p7zip-rar 與 p7zip-full 即可解決

參考:Ubuntu 的rar 壓縮檔內容亂碼問題

但目前 Windows 壓縮的 zip 檔,在 Ubuntu 底下仍會有中文亂碼的問題,待解決



初步解法可以用 unzip -O BIG5 filename
其中 "-O BIG5" 可以設定到 /etc/environment 中的 UNZIP 環境變數

參考:http://wiki.ubuntu.org.cn/index.php?title=Qref/More&variant=zh-hant

但如果 zip file 有密碼的話,目前還沒找到解決的辦法

此問題的原因為 Windows 下的檔名編碼 BIG5,而 Linux 下為 UTF-8,因兩者編碼不同,所以才會造成問題。



經過兩日來的努力,此問題似乎是無解,原因如上所述。即使重新編譯 unzip 解出正確的 BIG5 檔名,在 UTF-8 的系統顯示下仍是亂碼。不過在搜尋的過程中至少知道了 convmv 可以用來轉換檔名,也許可以順便解掉 MP3 亂碼的問題喔!



這個 "亂碼" 還衍伸出另外一個問題,就是丟到 "回收筒" 的檔案通通不見了,但實際到 ~/.local/share/Trash 中看檔案是在的,只是 回收筒 無法顯示。看來是 BIG5 的檔案在 回收筒 中無法正常顯示,所以索性就通通不顯示了。後來把回收筒清空後就正常了。

參考:Ubuntu 回收筒無法讀取內容



終極解法:把檔案拿到 Ubuntu 底下壓縮成 ZIP 格式,而且可以加密碼,在 Windows (7-Zip) & Ubuntu 底下都可以正常顯示了!!!

PS : Ubuntu 底下壓縮的 ZIP 檔,在 Windows 底下用預設的解壓縮程式打開看不到檔案內容,所以只好把 7-Zip 設成預設的壓縮、解壓縮程式了

留言

夢見草寫道…
你用7zip的話,就要用新的格式7z來壓縮、解壓縮。而不要還用zip舊格式,就不會有檔名亂碼的問題了。
匿名表示…
此法也沒甚麼用,只有以下兩種方式:

(1)在 Wine 套件中安裝 WinRAR 軟體。

(2) Ubuntu 使用 *.tar.gz 壓縮。

這個網誌中的熱門文章

Linux 批次檔的寫法

【分享】如何顯示 Debug Message

[分享] Visual Studio 遠端偵錯