使用 Apache POI 将 äöü 写入 Word

Writing äöü to Word using Apache POI

我正在开发一个 Java 应用程序,该应用程序使用 Apache POI 创建 .docx 文件。但是,当我在创建后从 Intelij 导航中手动打开它时,“äöü”未正确显示在 word 文件中。你知道我可能想要什么 check/amend 吗?

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();
}

解决方案:

  1. 添加“[compileJava, compileTestJava].options.encoding = 'UTF-8'”到build.gradle文件.
  2. 再次通过 gradle 导航构建项目。
  3. 重新启动 IDE。

如果您之前没有在 IntelliJ 中设置 UTF-8,您可能需要重新创建 .java 文件,其中包含您在问题中显示的代码(重新启动 IDE 可能也是个好主意),因为更改的编码设置仅对新文件有效。

https://intellij-support.jetbrains.com/hc/en-us/community/posts/360006974119-File-encoding-ignored-by-compiler