Linux 下 zip 文件解压乱码如何解决?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 下 zip 文件解压乱码如何解决?相关的知识,希望对你有一定的参考价值。

1、这是zip格式的缺陷,zip文件格式中没有字段标志出文件名的编码格式。Windows下生成的zip文件中的编码是GBK/GB2312等,而linux下的默认编码格式为UTF-8,所以才会出现乱码。


2、解决方法

1、使用unzip解压的时候,指定字符集(需要unzip支持,有些unzip命令不支持大O选项,自己可以安装较新的unzip版本):

md5@crc4:~/$ unzip -O CP936 test.zip

2、借助于p7zip和convmv:

a、在Fedora下的命令是 

su -c \'yum install p7zip convmv\'

b、在ubuntu下的安装命令是

sudo apt-get install p7zip convmv

安装完之后,就可以用7za和convmv两个命令完成解压缩任务。

LANG=C 7za x your-zip-file.zip
convmv -f GBK -t utf8 --notest -r .

说明:

1)、第一条命令用于解压缩,而LANG=C表示以US-ASCII这样的编码输出文件名,如果没有这个语言设置,它同样会输出乱码,只不过是UTF8格式的乱码(convmv会忽略这样的乱码)。

2)、第二条命令是将GBK编码的文件名转化为UTF8编码,-r表示递归访问目录,即对当前目录中所有文件进行转换。



 

参考技术A windows上的压缩,不要放到linux来解压. LINUX用的是gzip ,bz 参考技术B 网上找了很多,都有点麻烦,下面只需要一个命令即可。
我们本地压缩一般是GBK,而linux默认是UTF-8,导致中文乱码,解压如下:
linux解压命令:unzip -O CP936 ***.zip

linux解决zip解压乱码问题,实测可用

第一种方法:(推荐)
软件名:p7zip

7z x -tzip -o{输出的文件夹,此处与-o之间没有空格} 要解压的zip文件

更多使用方法

7z -h

第二种方法:
软件名:unarchiver
简单使用:

unar zip-file

解压带有密码的zip文件

unar zip-file -p password 

更多用法:请使用手册查看

unar -h
lsar -h

以上是关于Linux 下 zip 文件解压乱码如何解决?的主要内容,如果未能解决你的问题,请参考以下文章

解决 centos下附件 zip文件解压乱码问题

解决Linux下zip文件解压乱码问题

zip压缩包解压乱码问题

MAC系统下unzip解压中文文件名乱码

Linux 下 zip 文件解压乱码解决方案,ubuntu16.10亲测可用

Ubuntu解压windows下的.zip文件出现乱码的解决办法