在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的同时也会归档管理器,可以安装其他归档管理器。