Ubuntu下解決解壓zip文件中文文件名亂碼問題


 在Ubuntu下解壓Windows下壓縮的zip文件時,會出現解壓出的帶中文文件名的文件名亂碼,這是因為Ubuntu和Windows默認的編碼不同,Ubuntu下默認的編碼是UTF-8,而Windows下默認的編碼是GBK,而zip文件自身卻不帶有任何標識其編碼的信息。對於這個問題,主要有以下三種解決方法:

一、命令行指定解壓字符集

解壓時指定字符集,可以是CP936,GBK,GB18030

$unzip -O CP936 xxx.zip

不過,"man unzip"對這個參數沒有任何說明,但是"unzip --help"對這個參數有一行簡單的說明。
網上有人說,這個方法不總是湊效,在Ubuntu 12.04上,它是可以的。

二、在環境變量中指定unzip顯示和解壓參數

在/etc/environment中加入以下兩行:

UNZIP="-O CP936"
ZIPINFO="-O CP936"

然后在file-roller歸檔管理器中操作,中文名稱依然是亂碼,據說是因為file-roller優先使用p7zip,刪除p7zip后問題解決
$ sudo apt-get remove p7zip p7zip-full

這樣Gnome桌面的歸檔文件管理器(file-roller)可以正常使用unzip解壓中文。

三、使用p7zip解壓

1. 安裝p7zip-full

$sudo apt-get install p7zip-full

2.  卸載unzip

$sudo apt-get remove unzip

3. 再下載更新的p7zip-full包把原來的程序替換掉/usr/lib/p7zip/

p7z-bin.tar.gz 下載地址:p7z-bin.tar.gz (限於i386版本)

$sudo tar xzvf p7z-bin.tar.gz -C /usr/lib/p7zip

4. 使用鎖定p7zip、p7zip-rar和p7zip-full版本(防止更新后失效)

1) 安裝新立得軟件管理器 sudo apt-get install synaptic(如果已經安裝可以略過)
2) 打開新立得軟件包管理器,搜索p7zip
3) 在搜索出的結果中,選擇p7zip、p7zip-rar和p7zip-full,再點擊軟件包 -> 設置 -> 鎖定版本

四、結論

1、 推薦使用方法二解決zip文件解壓中文文件名亂碼的問題。
2、方法一使用命令行帶參數的方法不太方便。
3、方法三需要卸載unzip,而很多軟件是依賴unzip的,卸載unzip的同時,這些依賴unzip的軟件也會被卸載。 

以上方法在Ubuntu 12.04下測試通過。

=-=-=-=-=
Powered by Blogilo


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM