如何从批处理文件中递归压缩utf-8文件和文件夹?

时间:2013-08-06 09:02:36

标签: windows encoding unicode zip cygwin

我有一个名为“Attachments2”的文件夹。我正在使用Windows 7,并使用从cygwin下载的zip.exe来压缩此文件夹。

在此文件夹中,有些文件夹和文件的名称和内容中包含希伯来字符(在文件的内容中)。

这是文件夹在文件系统中的外观的快照:

enter image description here

尝试以下操作时:

zip.exe -r results.zip Attechments2

我得到以下内容:

enter image description here

文件内容为原点。

请帮忙。

Regrards, 奥马尔。

1 个答案:

答案 0 :(得分:1)

Windows的ZIP文件外壳扩展(“压缩文件夹”)不支持Unicode文件名。相反,它采用字节文件名字符串并使用特定于语言环境的遗留编码对其进行解释(因机器而异,并且从不是UTF)。

看起来你在拉链过程中还有一些进一步的破坏,因为它看起来不像直接的UTF-8误解;你可以通过使用支持Unicode打开它的另一个工具(例如7zip)来更好地了解ZIP中的文件名。但这一点可能没有实际意义:如果您希望ZIP文件的使用者是Windows用户,则唯一安全的文件名字符是ASCII。