【问题标题】:compatibility problem with unicode file name in zip fileszip 文件中 unicode 文件名的兼容性问题
【发布时间】:2011-02-13 21:18:17
【问题描述】:

我正在尝试压缩包含 unicode 字符的文件。

当我使用 winzip 时,winrar 和窗口“压缩文件夹”也不能正常查看。 当我使用winrar时,winzip和winrar都可以查看,但windows“压缩文件夹”不能查看。

我尝试了许多 c# 类并更改了许多编码但没有成功。 我也试过用 java 的 apache 通用压缩器,也没有运气。

似乎windows“压缩文件夹”只是无法查看文件名中的unicode字符,但我问你,你知道一种将unicode文件编码为zip的方法,以便它可以在windows压缩文件夹中正确打开吗?

在此先感谢您的帮助。

【问题讨论】:

  • 在 zip 文件中编码文件名的方法有很多种,没有一种是标准化的。对于 java 使用的 zip 文件,文件名必须以 UTF-8 编码(就像 jar 工具一样)。我不知道 compressed folder view 想要什么编码。遗憾的是,最好的办法仍然是不要在文件名中使用非 ASCII 字符。

标签: c# java unicode zip


【解决方案1】:

您可以强制 7-Zip 使用 unicode:

右键单击,7-Zip > 添加到存档... > 在参数字段中写入“cu”。

【讨论】:

  • 这很好用,你在哪里找到那个参数?我正在搜索,但没有找到关于 7-zip 的任何文档。
【解决方案2】:

这种情况可能行不通。 Windows 中内置的 ZIP 功能存在许多众所周知的 Unicode 问题。这些被描述为here

【讨论】:

    【解决方案3】:

    使用 7-Zip 创建 ZIP 存档。它是来自http://7-zip.org的免费开源

    【讨论】:

    • 7-zip 也有同样的问题。实际上更糟糕的是因为没有警告,它只是在添加到存档时打乱文件名。
    【解决方案4】:

    This hotfix 显然解决了 Windows 7 和 Windows Server 2008 R2 中的问题。 Windows 8/10 我认为是免疫的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-17
      • 1970-01-01
      • 2012-10-01
      • 2013-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多