乱码的不是内容,是文件名那层编码
压缩文件里记录文件名时靠一套字符编码。Windows 中文环境默认按 GBK 解释,Mac 和 Linux 打包的多数是 UTF-8,两边对不上,名字就成了乱码。这是历史遗留问题,不是谁操作错了。
先确认一件事:文件能不能正常打开。能打开就说明内容完好,只是名字难看,问题不大。
最省事的办法:换一个会猜编码的解压软件
Bandizip、360压缩这类在遇到编码对不上时会自己猜一套合适的编码,相关的选项一般在设置里叫「自动编码」或者「代码页」。装上之后重新解压一次,多半直接就好了。
Bandizip 免费版功能足够日常用,体积也小,乱码之外它还能解开分卷、看包内预览。
不想换软件:手动切代码页
WinRAR 里打开压缩包之后,菜单「选项」→「代码页转换」这一项可以指定 GBK 或者 UTF-8,切一个再解压试试。
7-Zip 比较轴,它对编码的判断比较保守。7-Zip 解不了就换成上面那两个试,别死磕。
已经解出来的乱码怎么办
直接重命名回中文就行,内容从来没坏过。文件多的话可以用批量重命名的工具,Total Commander 或者 Everything 里都能批量加工,不过多数情况下手动改几个重点文件也够。
真碰上压缩包损坏
症状是解压到一半报 CRC 错误或者意外的文件末端。先试试重新下载一次,八成是传输过程中断了一截。
确认源文件没问题的话,WinRAR 有「工具」→「修复压缩文件」的功能,会在旁边生成一个修复出来新包。成功率取决于损坏位置,能救回来一部分也值,救不回来就只能向对方重新要一份。
最后提醒一句:自己打包发给别人时,尽量用 7z 或者 rar 并且在 Unicode 环境下打包,少给别人添这种麻烦。
