使用 Win7 的“发送到 > 压缩 (zipped) 文件夹”压缩名称中含有 unicode 字符的文件时出错

使用 Win7 的“发送到 > 压缩 (zipped) 文件夹”压缩名称中含有 unicode 字符的文件时出错

当我尝试压缩名称中包含 Unicode 字符(例如 © 或 ™)的文件时,出现以下错误:

[窗口标题] 压缩文件夹错误

[内容] 无法压缩“C:\Asd™.txt”,因为它包含不能在压缩文件夹中使用的字符,例如™。您应该重命名此文件或目录。

[好的]

只有在我重新安装 Windows 7 时,这才会成为问题。我可能有一些必要的资源可以自动解决此错误,但现在几乎是全新安装,我无法压缩文件。我该如何解决这个问题?

更新:自从我发布这个问题已经过去了一段时间,我安装了一些常用的应用程序,但问题仍然存在,我不确定是否可以通过安装之前的一些特定应用程序来解决这个问题。


Windows 10 的内置压缩功能可能不存在此问题,正如对这个问题发表评论

答案1

如果违规字符来自英语以外的其他语言,但 Microsoft 支持该语言,则可以安装相关的MUI(多语言用户界面)语言包来自 Windows 更新,或相关LIP(语言界面包)这里作为一个可能的解决办法。

除了上述内容之外,您可能还需要更改系统区域设置

系统区域设置决定了在不使用 Unicode 的程序中输入和显示信息时使用的默认字符集(字母、符号和数字)和字体。这样,非 Unicode 程序就可以使用指定的语言在您的计算机上运行。在计算机上安装其他显示语言时,您可能需要更改默认系统区域设置。为系统区域设置选择其他语言不会影响 Windows 或其他使用 Unicode 的程序的菜单和对话框中的语言。

要做到这一点:

  1. 在开始菜单搜索框中输入“region”(不带引号)

  2. 打开地区和语言控制面板小程序

  3. 点击行政的选项卡,然后在非 Unicode 程序的语言下单击更改系统区域设置。如果系统提示您输入管理员密码或确认,请键入密码或提供确认。

  4. 选择语言,然后单击“确定”。

  5. 如果系统提示您重新启动计算机,请点击现在重启这样做。

    Win7更改系统区域设置


然而,如果违规角色是这样的如上所述,我不认为微软官方有修复这个问题的方法zipfldr.dll 限制,自从 Windows 有这个功能以来,它就一直存在(所以如果你真的做过尽早修复,可能你安装了一些第三方组件)。来自维基百科

自从 Windows 98 的 Plus! 包发布以来,Microsoft Windows 的各个版本都支持 Explorer 中的 zip 压缩。Microsoft 将此功能称为“压缩文件夹”。Windows 压缩文件夹功能并不支持所有 zip 功能。例如,AES 加密、拆分或跨区存档以及Unicode 条目编码Windows XP 或更高版本中的压缩文件夹功能无法读取或写入。

ZIP 文件格式长期以来缺乏 Unicde 支持,并且此扩展仅在 6 年前的 2006 年添加。根据附录 D - 语言编码 (EFS)ZIP 文件格式规范

D.1 ZIP 格式过去仅支持原始 IBM PC 字符编码集,通常称为 IBM 代码页 437。这限制了文件名字符的存储范围,仅限于原始 MS-DOS 值范围内的字符,并且无法正确支持其他字符编码或语言的文件名。为了解决此限制,本规范将支持以下更改。[其余内容请阅读文档。]

从那时起,所有实施该格式的主流 Windows 归档程序都已更新,以包含 Unicode 支持,我相信从 2008 年的 WinZip 开始。不幸的是,微软出于某种奇怪的原因,授权第三方库使用其压缩文件夹功能(尽管编写 ZIP 支持并不难),而且显然这个库的出现时间早于将 Unicode 添加到 ZIP 文件格式。此外,微软尚未更新代码来修复此错误,这清楚地表明了它对此功能的重视程度至今(显然,即使是最新版本的 .Net Framework 即 4.5 中的新 System.IO.ZipArchive 类最初也没有正确解决此问题,但该错误现已修复)。我猜他们希望每个人都安装众多功能齐全的第三方归档程序之一,这正是我上面向您推荐的。

你可以在微软的以下一系列博客文章中阅读有关 Windows 缺乏 Unicode 支持的肮脏细节迈克尔·卡普兰


PS “我刚刚发现使用 Windows 的“发送到”压缩效果与 Winrar 的“最佳”压缩效果一样好,但速度要快得多。” - 我刚刚多次测试过。除了打开 WinRAR 的添加到档案对话框中,选择 ZIP 作为存档格式并按 OK,两者的实际压缩时间大致相同,WinRAR 总体上花费的时间更少(尽管差异可以忽略不计)。如果您看到巨大的差异,那可能是因为您先在一组文件上测试了 WinRAR,然后立即使用压缩文件夹压缩了相同的文件。当然,第二次 Windows 已经缓存了数据,因此该过程花费的时间只是最初的一小部分。以相反的顺序对您在当前 Windows 会话期间之前未接触过的一组文件执行此操作,我敢打赌结果会相反。:)

至于最终的压缩大小,取决于存档的数据/文件格式组合,我发现这两种格式都更好(尽管差异再次可以忽略不计)。当然,7z 或 Rar(甚至 WinZip 的 ZipX)格式远的在这方面做得更好,几乎每天都会击败普通的 ZIP(即使用传统/遗留的 ZIP放气算法代替平均粒径等等)。

答案2

我遇到了同样的问题。使用 7-zip 管理器并压缩文件,问题就解决了。:)

相关内容