【发布时间】:2021-08-11 14:05:46
【问题描述】:
我正在开发一个使用 Apache POI 创建 .docx 文件的 Java 应用程序。但是,当我在创建后从 Intelij 导航手动打开“äöü”时,它没有正确显示在 word 文件中。你知道我可能想要检查/修改什么吗?
public void generateProtocolTEST() throws IOException {
if (!Paths.get("./protocols").toFile().exists()) Files.createDirectories(Paths.get("./protocols"));
XWPFDocument document = new XWPFDocument();
FileOutputStream out = new FileOutputStream("protocols/" + "test.docx");
document.createParagraph().createRun().setText("äüö");
document.write(out);
out.close();
}
解决方案:
- 在 build.gradle 文件中添加了“[compileJava, compileTestJava].options.encoding = 'UTF-8'”。
- 再次通过 gradle 导航构建项目。
- 重新启动 IDE。
【问题讨论】:
-
setText("\u00e4\u00fc\u00f6");会发生什么? -
你在 IntelliJ 的 Settings -> Editor -> File Encodings 中设置了什么编码?
-
@g00se - 我收到了äüö!但是,这似乎有点不方便...
-
@Mario - 我全部设置为 UTF-8(请查看添加到我帖子中的设置截图)。
-
@Zuhlek:如果 g00se 的建议有效,那意味着问题在于您如何编译 Java 代码!告诉编译器/构建工具/IDE 要使用什么编码,并使用该编码编写您的
.java文件(pick UTF-8,这几乎是当今任何事情的正确选择)。
标签: java apache-poi