英文版 Windows 打开 ZIP 压缩包文件名乱码怎么办?

英文版 Windows 打开 ZIP 压缩包文件名乱码怎么办?

1 问题

有很多海外 MOS 学员询问谷月老师,用英文版 Windows 打开 ZIP 压缩包,发现压缩包里的文件名是乱码。怎么办?

正确的文件名

乱码的文件名

2 分析

简而言之,这是因为英文版的 Windows 内置的“压缩文件夹”(Compressed folder)功能无法正确解码压缩包内文件名中的汉字。

3 解决

谷月老师有两种解决办法,一是修改 Windows 的当前区域设置(Current System Locale),让 Windows 能正确解码压缩包内文件名中的汉字;二是使用能正确解码的第三方压缩软件。

3.1 修改 Windows 设置

此修改是可逆的,如果在运行某些来自欧洲的软件出现乱码时,可以将此项改回来。

操作步骤:点击【Start】➡【Settings】(或者按下【Win + I】键)➡【Time and Language】➡【Language】➡【Administrative language setting】➡【Administrative】选项卡➡【Change System Locale】,把【Current System Locale】从【English (United Status)】改成【Chinese (Simplified, China)】,点击【OK】,重启系统。

执行以上步骤以后,再双击打开 ZIP 压缩包,Windows 就可以正确显示压缩包内文件名中的简体中文了。而且,解压之后,文件名也是正确的,没有乱码。

Current System Locale.gif

Bilibili 观看

YouTube 观看

3.2 使用第三方压缩软件

谷月老师建议使用 Bandizip 6.x。Bandizip 有很强的编码识别功能,可以轻松搞定文件名中的乱码。注意,6.x 是最后的免费版本,从 7.0 开始收费,因此谷月老师建议用 6.x 版。

用 Bandizip 6.26 Portable 打开压缩包,点击【Code Page】➡【Simplified Chinese】,就可以正确地显示文件名中的简体中文。而且,用 Bandizip 解压之后,文件名也是正确的,没有乱码。

Bandizip 6.26 Portable

Bilibili 观看

YouTube 观看

下载方式:关注谷月老师的公众号【谷月老师讲Office】(kukmoon-office),回复【Bandizip】(不需要加两边的括号),获取下载地址。

4 总结与讨论

在 Windows 中,为了保持对旧版 Windows 的兼容,文件名的编码是 ANSI 编码,而不是当代全球通用的 UTF-8 编码。

至于 ZIP 压缩包,由于 ZIP 在问世时,Unicode 及 UTF-8 尚未问世,因此 ZIP 原生不支持 UTF-8 编码。

Windows 内置的“压缩文件夹”工具,在创建压缩包时,根据当前操作系统的代码页为文件名编码。简体中文版 Windows 的代码页是 936,具体的编码是 GBK,而英文版 Windows 的代码页是 437,具体的编码是 Windows-1252。后者无法解读前者,因此无法正确显示压缩包内文件名中的汉字。

2007 年,ZIP 格式的拥有者 PKWARE 公司发布了一个补丁,让 ZIP 格式最终可以支持 UTF-8。用户既可以强行用 UTF-8 编码和存储压缩包中的文件名(以前,Mac、Linux、Unix 用户就是这样做的),又可以保持文件名的原始编码,而把 UTF-8 版本的文件名保存到 ZIP 压缩包的文件头。

尽管 RAR 和 7Z 格式都是原生支持 UTF-8 的,可以彻底消除文件名乱码的问题,,但是,由于 ZIP 历史长而且授权是开放的,因此它的应用范围很广,RAR 和 7Z 始终难以取代 ZIP,更不要说 RAR 是闭源格式,还存在版权问题。至少目前谷月老师仍然坚持以 ZIP 格式分享资料和打包。

图片版权

题图:自绘。Zip format icons created by Freepik - Flaticon. White abstract vector created by freepik - www.freepik.com

头图:


求扫码打赏
“我这么可爱,请给我钱 o(*^ω^*)o”

英文版 Windows 打开 ZIP 压缩包文件名乱码怎么办?
https://blog.kukmoon.com/72b0ec064658/
作者
Kukmoon谷月
发布于
2022年5月1日
许可协议