在 Windows 1251(西里尔文)编码中正确查看 ZIP 文件中的文件名

在 Windows 1251(西里尔文)编码中正确查看 ZIP 文件中的文件名

我有一个 zip 文件,根据其创建者的说法,其中的目录和文件名(数千个文件)采用 Windows 1251 编码。即文件名包含俄语或西里尔字母。我的 Windows XP SP3 无法正确显示它们

ÅÑaÑó«ñd而不是АБВГДЕЖ(我只显示俄语字母表的前 7 个字母,2 个序列不相关)。

可以在操作系统级别上做任何事情来正确显示它们,或者是否有脚本可以重命名或复制所有目录和文件?

事实上,我对保留文件内容原样没有任何问题,因为它们实际上是 Windows 1251 编码的卡拉 OK 文件 (.kar) 和歌词,但我想知道为什么文件名会出现奇怪的变化。

答案1

ZIP 格式对文件名中的非英文字符的支持较弱。因此,可能存在不兼容的实现。您看到的影响不是核心操作系统级别,而是 Windows Shell(Explorer)中 ZIP 格式支持的问题。其他 ZIP 程序(例如 7Zip)可能对此支持得更好。

答案2

Zip 创建不受我控制,我使用 Winrar 来解压。就我而言,解决方案是在系统级别。

  1. 在控制面板中打开区域和语言选项。
  2. 在“高级”选项卡上的“非 Unicode 程序的语言”下,单击将使用的非 Unicode 程序的语言版本。

我将其设置为俄语。我怀疑像 Winrar 这样广泛使用的程序是否可以归类为非 Unicode,尽管如此

重启后,Winrar 开始正确显示文件名,并且解压后的文件在 Windows 资源管理器中正确显示。

相关内容