解决windows下的zip压缩包在linux下解压出现乱码的问题

linux July 18 2015


前言:

 windows平台下的默认编码一般为GBK、GB2312,而linux下一般默认为UTF8,当windows下的压缩文件在linux下解压时,由于该压缩文件没有指明采用的是何种编码,于是linux用默认UTF8编码解压后中文就会出现乱码。

 今天从网上下载的压缩包在ubuntu下解压后出现中文文件名乱码问题,但文件内容没有出现乱码。网上有多种解决方案,但许多方法不够通用,不能解决大多数人的问题,比如:

unzip -O CP936 xxx.zip 在我本地unzip命令就没有这个参数,不能执行。

在此,总结一下我用过的两个比较通用有效的方法:

**1.在wine环境下安装一个windows平台下的解压软件**

这个方法最简单。一般linux平台下我都会安装wine,于是我接下来安装了360压缩(也可安装其他解压软件),然后解压文件,一切正常,so easy!

![](uploads/2015/07/20150718065319_60498.png)  


**2.使用linux命令解压**

a.安装工具:

sudo apt-get install p7zip-full convmv b.解压文件:

LANG=C 7za x test.zip 此时中文文件解压后,会显示类似乱码:

�ؿ�-�ļ��嵥��ʹ��˵��.txt (无效的编码)

准确点说,这应该不算乱码,可理解为未编码状态,此时可以继续下一步处理。

c.对上一步产生的乱码进行转换(gbk转utf8):

convmv -f GBK -t UTF8 -r --notest . 此时文件名被纠正为:

必看-文件清单及使用说明.txt  


d.如果你的文件内容也出现乱码:

可以使用iconv命令解决,具体可通过iconv --help查看用法(本人暂未遇到文件内容乱码问题,就不演示了)。

  


 **总结:**

第二种方法显然处理起来更稳定,但需要命令进行多次操作才能完成,以后有时间写成一个文件,方便使用。

原文链接:http://ichatter.cn/e8-a7-a3-e5-86-b3windows-e4-b8-8b-e7-9a-84zip-e5-8e-8b-e7-bc-a9-e5-8c-85-e5-9c-a8linux-e4-b8-8b-e8-a7-a3-e5-8e-8b-e5-87-ba-e7-8e-b0-e4-b9-b1-e7-a0-81-e7-9a-84-e9-97-ae-e9-a2-98.html


欢迎来到阿J小虫的博客

Follow @ichatter on GitHub

最新评论

推荐内容