【问题标题】:encoding filenames in zip archive to correct displaying in windows explorer在 zip 存档中编码文件名以正确显示在 Windows 资源管理器中
【发布时间】:2015-06-17 09:56:01
【问题描述】:

在我们的网站上,我们使用 jszip library 在客户端生成 zip 存档。此存档中的文件在文件名中包含非 ASCII(西里尔字母)字符。如果使用正确显示的 7zip 文件名。但是我们网站的一些用户使用 Windows 资源管理器打开了这个 zip 档案,在这种情况下文件名显示不正确。

有没有办法对文件名进行编码以便在 Windows 资源管理器 zip 查看器中正确显示?

【问题讨论】:

    标签: javascript character-encoding zip windows-explorer


    【解决方案1】:

    Windows 资源管理器(包括 Windows 7)处理的 zip 归档文件很差。 zip 格式规范不强制编码,Windows 资源管理器使用locale of the machine。它不处理 unicode 元数据(语言编码标志或 Info-ZIP Unicode 路径额外字段):您必须使用将打开文件的机器的语言环境(这会导致很多兼容性问题)。

    JSZip 不支持自定义编码(目前),但有一个 open pull request to add this feature。

    另一个“解决方案”是只使用 ASCII 名称(这是this page 的结论)。

    您也可以保留 utf8 文件名,但强制您的用户至少升级到 Windows 8、apply a patch 或安装 7zip(这可能不是最实用的解决方案)。

    【讨论】:

    • 感谢大卫的回答。你证实了我最坏的预感。我认为我的问题的最佳解决方案是将文件名音译为 ASCII。再次感谢。
    猜你喜欢
    • 2012-11-22
    • 1970-01-01
    • 1970-01-01
    • 2016-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    相关资源
    最近更新 更多