主要原因是,在windows下压缩文件时,是以系统的默认编码(gbk,gb18030)来压缩,zip文件并没有声明编码的格式,因此,linux下解压缩时,也会使用系统默认的格式(utf-8)解压缩,编码格式不同,自然会出现乱码。

解决办法,linux下解压zip文件时声明一下编码即可。
比如对于某个windows下用zip压缩的文件 xx.zip

解压时,可以利用

$ unzip -O CP936 xx.zip
很方便,亲测~

实际上,CP936用GBK, GB18030也是可以的。

补充,一般rar文件在linux解压时并不会出现文件名乱码的情况,主要原因是rar文件头声明了压缩时的编码。所以大家以后为了方便,尽量还是用rar方式压缩吧。

版权声明:本文为huhuixin原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/huhuixin/p/5731444.html