2023年8月3日发(作者:)

解决linux下zip⽂件解压乱码问题原因由于zip格式并没有指定编码格式,Windows下⽣成的zip⽂件中的编码是GBK/GB2312等,因此,导致这些zip⽂件在Linux下解压时出现乱码问题,因为Linux下的默认编码是UTF8。解决⽅案⼀使⽤7z解压。安装p7zip和convmv# fedora$ su -c 'yum install p7zip convmv'# ubuntu$ sudo apt-get install p7zip convmv执⾏⼀下命令解压缩# 使⽤7z解压缩$ LANG=C 7za x # 递归转码$ convmv -f GBK -t utf8 --notest -r .解决⽅案⼆在windows上压缩的⽂件,是以系统默认编码中⽂来压缩⽂件。由于zip⽂件中没有声明其编码,所以linux上的unzip⼀般以默认编码解压,中⽂⽂件名会出现乱码。虽然2005年就有⼈把这报告为bug, 但是info-zip的官⽅⽹站没有把⾃动识别编码列⼊计划,可能他们不认为这是个问题。Sun对java中存在N年的zip编码问题,采⽤了同样的处理⽅式。有2种⽅式解决问题:1. 通过unzip⾏命令解压,指定字符集unzip -O CP936 (⽤GBK, GB18030也可以)有趣的是unzip的manual中并⽆这个选项的说明, unzip --help对这个参数有⼀⾏简单的说明。2. 在环境变量中,指定unzip参数,总是以指定的字符集显⽰和解压⽂件/etc/environment中加⼊2⾏UNZIP="-O CP936"ZIPINFO="-O CP936"这样Gnome桌⾯的归档⽂件管理器(file-roller)可以正常使⽤unzip解压中⽂,但是file-roller本⾝并不能设置编码传递给unzip。以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

2023年8月3日发(作者:)

解决linux下zip⽂件解压乱码问题原因由于zip格式并没有指定编码格式,Windows下⽣成的zip⽂件中的编码是GBK/GB2312等,因此,导致这些zip⽂件在Linux下解压时出现乱码问题,因为Linux下的默认编码是UTF8。解决⽅案⼀使⽤7z解压。安装p7zip和convmv# fedora$ su -c 'yum install p7zip convmv'# ubuntu$ sudo apt-get install p7zip convmv执⾏⼀下命令解压缩# 使⽤7z解压缩$ LANG=C 7za x # 递归转码$ convmv -f GBK -t utf8 --notest -r .解决⽅案⼆在windows上压缩的⽂件,是以系统默认编码中⽂来压缩⽂件。由于zip⽂件中没有声明其编码,所以linux上的unzip⼀般以默认编码解压,中⽂⽂件名会出现乱码。虽然2005年就有⼈把这报告为bug, 但是info-zip的官⽅⽹站没有把⾃动识别编码列⼊计划,可能他们不认为这是个问题。Sun对java中存在N年的zip编码问题,采⽤了同样的处理⽅式。有2种⽅式解决问题:1. 通过unzip⾏命令解压,指定字符集unzip -O CP936 (⽤GBK, GB18030也可以)有趣的是unzip的manual中并⽆这个选项的说明, unzip --help对这个参数有⼀⾏简单的说明。2. 在环境变量中,指定unzip参数,总是以指定的字符集显⽰和解压⽂件/etc/environment中加⼊2⾏UNZIP="-O CP936"ZIPINFO="-O CP936"这样Gnome桌⾯的归档⽂件管理器(file-roller)可以正常使⽤unzip解压中⽂,但是file-roller本⾝并不能设置编码传递给unzip。以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。