zarchiver 中文文档 下载 App

解压后文件名乱码——编码问题解决

什么是乱码

你可能见过这种情况:解压一个 Windows 电脑上打出来的 ZIP 包,解压后的文件名不是正常中文,而是类似"瀹夊崜"这样的乱码。内容本身是好的,但文件名完全看不懂。

原因

压缩时的文件名编码和解压时认定的编码不一致。

压缩包内部存储文件名时,会用某种编码方式(UTF-8 或 GBK 等)。解压时 ZArchiver 会按默认编码去解读——如果默认编码与压缩包实际使用的编码不匹配,就会产生乱码。

最常见的场景:中文 Windows 电脑上打出来的 ZIP 包,默认用 GBK 编码;ZArchiver 默认用 UTF-8 去读——解码不对 → 乱码。

解决方法

方法一:切换 ZArchiver 的文件名编码设置

  1. ZArchiver 设置里找到文件名编码相关选项(不同版本措辞可能略有不同,搜"编码"或"encoding")
  2. 把默认编码从 UTF-8 切换成 GBK(或反过来切回 UTF-8)
  3. 删掉之前解压出来的乱码文件(它们的名字已经错了,再解压一次会覆盖)
  4. 重新解压

方法二:压缩包本身的问题

如果切换编码后还是乱码,可能是压缩包本身在打包时就没正确设置编码——打包方用了不兼容的编码。这种情况:

怎么避免乱码

你自己打包发给别人时

你收到别人的包时

不同系统的编码默认值

系统压缩时默认编码
Windows(中文)GBK(简体中文系统)
Windows(英文)UTF-8
MacUTF-8
LinuxUTF-8
安卓 ZArchiverUTF-8

所以主要问题来自中文 Windows 系统打包的压缩包。

压缩包里的文件名本来就是 ASCII

如果压缩包里只有英文文件名或数字,不会有乱码问题——ASCII 是所有编码都兼容的。乱码只出现在包含非 ASCII 字符(中文、日文、Emoji)的文件名上。