【发布时间】:2020-06-15 12:54:06
【问题描述】:
在某些情况下,我目前无法让 ZipOutputStream 正确编码 UTF-8 中的 xml 文件。
以下是相关代码:
public void saveQuest(File selectedFile) {
try {
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(selectedFile + ".zip"), StandardCharsets.UTF_8);
out.putNextEntry(new ZipEntry(".data"));
out.write(quest.getConfigAsBytes());
for (String scene : quest.getSceneNames()) {
out.putNextEntry(new ZipEntry(scene+".xml"));
out.write(quest.getSceneSource(scene).getBytes());
}
out.flush();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {out.close();} catch(IOException e) {}
}
该代码压缩了UTF-8 中的所有xml 文件以及一个数据文件。但只要我在我的 Eclipse-IDE 中运行它。一旦我将它放入一个可运行的 jar 并在 Eclipse 之外运行它,它就不再能够以UTF-8 编码写入文件。
可能有用的信息:
代码来自一个旧的 maven 项目,我已将编译器设置为 Java 1.8。但由于我对 Maven 没有真正的经验,我不知道那里是否还有其他问题。
这是我的第一个 stackoverflow 问题,正如你们可能看到的那样,我并不是很有经验。如果我忘记提供任何其他重要信息,请告诉我。
【问题讨论】:
标签: java utf-8 zipoutputstream