这一点取决于您用于创建存档的代码。在 旧 的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的正式标准。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)