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
更改为cmd
utf8
然后使用以下
pkzipc
命令执行-utf8
希望它能帮助你。