Windows 上的 PKZipC v14 - 如何在 @list 文件中传递非 ASCII 文件名

Windows 上的 PKZipC v14 - 如何在 @list 文件中传递非 ASCII 文件名

PKZipC 文档提到了-utf8在 ZIP 中将非 ASCII 文件名存储为 UTF-8 的选项,但没有说明如何使用参数添加此类@list文件pkzipc -add

我尝试了使用/不使用-utf8开关的几种组合运行,以及使用@list带有/不带有 BOM 的 UTF-8 或 UTF-16 编码保存的文件,但都失败了。

我想知道是否有人能有更好的运气来完成这项工作。

答案1

由于您已尝试了开关的所有可能组合-utf8以及@list UTF-8 或 UTF-16 编码,甚至带/不带 BOM,我不知道您还可以使用 PKZipC for Windows 及其参数做什么。

我建议联系 PKWARE 支持并提出投诉,尽管这可能不会立即带来解决方案。

同时,您需要将包含非 ASCII 字符的文件名转换为不包含此类字符的名称。此格式称为文件名的缩写形式,基本上是 8.3 文件名的旧 DOS 格式。该dir /x命令将显示这些名称。

要获取一组文件的短名称,请参阅帖子 如何找到 Windows 目录/文件的短路径? 其中列出了各种解决方案。我特别喜欢这个答案 提出了以下一句话:

cmd /c for %A in ("C:\Program Files") do @echo %~sA

以下是如何使用它的一个例子:

在此处输入图片描述


既然您说您的 IT 部门已决定禁用网络共享上的 NTFS 8.3 短名称,我建议您寻找替代方案。我建议测试以下一些方法:

答案2

使用命令提示符尝试以下操作:

  • 执行命令将代码页chcp 65001更改为cmdutf8

  • 然后使用以下pkzipc命令执行-utf8

希望它能帮助你。

相关内容