在zip存档中使用Unicode字符作为文件名

在zip存档中使用Unicode字符作为文件名,第1张

在zip存档中使用Unicode字符作为文件名

这一点取决于您用于创建存档的代码。在 的Java压缩类不是很灵活,因为你需要。

您可以使用Apache Commons
Compress
。迈克尔·西蒙斯(Michael Simons)编写了这段漂亮的代码:

ZipArchiveOutputStream ostream = ...; // Your initialization pre hereostream.setEncoding("Cp437"); // This should handle your "special" charactersostream.setFallbackToUTF8(true); // For "unknown" characters!ostream.setUseLanguageEncodingFlag(true);         ostream.setCreateUnipreExtraFields(    ZipArchiveOutputStream.UnipreExtraFieldPolicy.NOT_ENCODEABLE);

如果您使用的是Java 7,
则最终

Charset
在ZipOutputStream构造函数上有一个参数(可以是UTF-8)

无论如何,最大的问题是,许多实现都不理解Unipre编码,因为 原始的
ZIP文件格式是ASCII,并且没有Unipre的正式标准。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5489400.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存