在Ubuntu的系統下解壓zip文件的時候居然出現了亂碼,通過查找網上的資料,解決的辦法有兩種
一、通過unzip行命令解壓,指定字符集,由於zip格式中並沒有指定編碼格式,Windows下生成的zip文件中的編碼是GBK/GB2312等,因此,導致這些zip文件在Linux下解壓時出現亂碼問題,因為Linux下的默認編碼是UTF8。目前網上流行的是unzip -O cp936的方法,但一些linux發行版unzip是沒有-O這個選項的。Ubuntu 12.04后續版本是有的。
命令格式:
------------------------------------------------------------
pipci@Ubuntu:~$ unzip -O CP936 xxx.zip
下面這兩個參數也行
unzip -O GBK
unzip -O GB18030
------------------------------------------------------------
二、通過unar命令最簡單
1、安裝unar軟件
-----------------------------------------------
root@Ubuntu:~# apt install unar
-----------------------------------------------
2、命令格式:
-------------------------------------------------------------------------------------------------------
pipci@Ubuntu:~$ unar xxx.zip #不需要加參數,自動識別編碼
-------------------------------------------------------------------------------------------------------
3.unar常用選項解釋
參數[-o]
解釋:指定解壓結果保存的位置
~$ unar test.zip -o /home/dir/
參數[-e]
解釋:指定編碼
~$ unar -e GBK test.zip
參數[-p]
解釋:指定解壓密碼
~$ unar -p 123456 test.zip
4、列出壓縮包內容
~$ lsar xxx.zip
二、在環境變量中,指定unzip參數,總是以指定的字符集顯示和解壓文件
/etc/environment中加入2行
------------------------------------------------
UNZIP="-O CP936"
ZIPINFO="-O CP936"
------------------------------------------------
這樣Gnome桌面的歸檔管理器(file-roller)可以正常使用unzip解壓中文,但是如果系統里面有p7zip軟件,需要先刪除p7zip,據說是因為file-roller優先使用p7zip,但是file-roller本身並不能設置編碼傳遞給unzip。MATE桌面環境的歸檔管理器(Engrampa)需要依賴p7zip,刪除p7zip的同時也會歸檔管理器,可以安裝其他歸檔管理器。