目录
windows下压缩文件请用7zip,能防止在linux下压缩包内文件名乱码:
以上结论经过测试验证的。确实如此,windows下压缩的zip和rar包,在win下打开里面文件名(含中文名文件)显示正常,但是在linux下用xarchiver 等软件往往显示为乱码,解压后也是乱码。
而如果在win下用7zip格式压缩的,就不存在以上问题。其他方案还有:在win下压缩的zip格式,如果在linux下用7za(p7zip)软件解压,也不会出现中文名乱码问题。
centos下p7zip的安装方法:
yum install -y p7zip
ubuntu/debian下的安装方法:
apt-get install -y p7zip
效果对比:
linux下用unrar命令解压出的文件名中文乱码,后面括号内带有“无效的编码”字样,解决方法:
linux下,当使用unrar 解压命令解压来自 windows下压缩的rar 文件时:
unrar x rar文件名
问题表现:
rar压缩文件内的文件名如果是英文,解压后显示正常。如果带有中文,解压缩时中文变成乱码,乱码文件名后面带有(无效的编码)字样。如下图所示:
问题原因:
rar文件在win系统创建,文件名默认使用gb2312编码,而gb2312字符编码在linux下用unrar软件解压后,没有正确解码中文。linux下默认的字符(中文也是一类字符)编码方式是UTF-8。
解决方法:
需要用转码工具convmv进行文件名转码
ubuntu/debian 系统下需要先安装 convmv软件:
sudo apt-get install convmv
然后转码当前目录下的文件名乱码文件名为linux下正常显示的文件名:convmv * -f gb2312 -t utf8 –notest
注意:
由于unrar的这段处理是2014年之前的情况和解决经验。后来unrar软件版本可能有更新,近几年随着linux系统对中文的支持越来越好,这个rar的问题可能不容易发生了。 如果仍遇到这样的问题,不妨用本文提到的方法解决看。