在archlinux下用zip解压文件一直是我很头疼的一个问题。
每次收到同学们发来的或者是网上下载的从windows压缩的zip文件,我打开都是乱码,一直都没有很好的解决办法。
原因大家都知道:在windows下压缩文件时,是以系统的默认编码(gbk,gb18030)来压缩,zip文件并没有声明编码的格式,因此,linux下解压缩时,也会使用系统默认的格式(utf-8)解压缩,编码格式不同,所以会出现乱码。
即使查资料也都是说的不靠谱,什么unzip -O之类的,可是好像-O选项的版本早就没了还是怎么的,反正是不能用,而且哪些所谓的解决办法都是互相抄来抄去的解决方法,其实那些博主估计根本就没有亲身。今天终于忍不住了,狠下心查了一下午,试了各种办法,什么7z啊之类的全都用了,最后终于决定要放弃了。就在这时,我的努力也许打动了我自己,于是奇迹出现了,上命令——
unzip xxx.zip
先用这条命令将xxx.zip解压,假设解压出来的文件是xxx。
convmv -f gbk -t utf8 --notest xxx
这条命令是让文件xxx从gbk编码转换成utf8编码,如果不加--notest的话只是预览而不是真正的转换。
亲身实践,绝对真实、好用。(当下立即用脚本解压并转码了30多个zip包,不过有4个是失败的,转码未成功。失败原因是这几个zip包解压出来的文件本身就已经时utf8编码,所以不能再转换成utf8编码了。)不过总体来说,成功率还是很靠谱的!
时间: 2024-12-18 06:42:11