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

前言:

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

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

unzip -O CP936 xxx.zip

在我本地unzip命令就没有这个参数,不能执行。

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

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

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


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查看用法(本人暂未遇到文件内容乱码问题,就不演示了)。

总结:

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



发表评论

电子邮件地址不会被公开。 必填项已用*标注