gpt4 book ai didi

java - ZipArchiveEntry 字符集编码错误

转载 作者:行者123 更新时间:2023-12-01 05:29:49 24 4
gpt4 key购买 nike

我必须使用 apache-commons-compress-1.x API 创建一个 zip 文件。我使用了以下代码:

File fileZip = new File("D:\\file.zip");
ZipEncoding zipEncoding = ZipEncodingHelper.getZipEncoding("UTF8");
ZipArchiveOutputStream zipOut = new ZipArchiveOutputStream(fileZip);
zipOut.setEncoding("UTF-8");

File entryFile = new File("D:\\attività.jpg");
String entryName = entryFile.getName();
entryName = new String(entryName.getBytes("UTF-8"), "UTF-8");

ZipArchiveEntry entry = new ZipArchiveEntry(entryName);
entry.setSize(entryFile.length());

FileInputStream fInputStream = new FileInputStream(entryFile);
zipOut.setUseLanguageEncodingFlag(true);
zipOut.setCreateUnicodeExtraFields(ZipArchiveOutputStream.UnicodeExtraFieldPolicy.ALWAYS);
zipOut.putArchiveEntry(entry);
zipOut.write(IOUtils.toByteArray(fInputStream));
zipOut.closeArchiveEntry();

zipOut.flush();
zipOut.close();

zip 条目文件名有编码错误。如果我使用 Windows XP 内置的 zip 管理器打开压缩文件,文件名是 attivit+á.jpg。请帮助我。

最佳答案

entryName = zipEncoding.encode("attivit\u00E0.jpg");

关于java - ZipArchiveEntry 字符集编码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9158565/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com