
1、这是zip格式的缺陷,zip文件格式中没有字段标志出文件名的编码格式。Windows下生成的zip文件中的编码是GBK/GB2312等,而linux下的默认编码格式为UTF-8,所以才会出现乱码。
2、解决方法
1、使用unzip解压的时候,指定字符集(需要unzip支持,有些unzip命令不支持大O选项,自己可以安装较新的unzip版本):
md5@crc4:~/$ unzip -O CP936 test.zip2、借助于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.zipconvmv -f GBK -t utf8 --notest -r .
说明:
1)、第一条命令用于解压缩,而LANG=C表示以US-ASCII这样的编码输出文件名,如果没有这个语言设置,它同样会输出乱码,只不过是UTF8格式的乱码(convmv会忽略这样的乱码)。
2)、第二条命令是将GBK编码的文件名转化为UTF8编码,-r表示递归访问目录,即对当前目录中所有文件进行转换。
Ubuntu下在终端里输入,之后会提示输入你的密码:sudo apt-get install p7zip,之后还是用默认的压缩文件管理程序就可以使用7z文件了Fedora下是以root登录,然后在终端里输入yum install p7zip,用法和前面一样。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)