我们的团队有一个程序可以生成用 Java 编写的 PDF。可能具有非 ASCII 文件名的 PDF 使用 Apache Commons Compress 进行压缩。然后将 zip 文件上传到 S3 以供 Windows 和 Mac 客户端下载。
在 Mac 上使用本机工具解压缩时,会使用正确的文件名重新创建文件。但是,当尝试使用本机 Windows UI 工具解压缩时,文件名创建不正确。
压缩过程是:
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
我添加了以下代码,它仍然无法正常工作,在 Windows 上显示不可读的字符:
zipFile.setEncoding("UTF-8");
zipFile.setUseLanguageEncodingFlag(true);
zipFile.setCreateUnicodeExtraFields(ZipArchiveOutputStream.UnicodeExtraFieldPolicy.ALWAYS);
如何创建 Mac 和 Windows 都可以使用的 zip 文件?