【问题标题】:Writing äöü to Word using Apache POI使用 Apache POI 将 äöü 写入 Word
【发布时间】: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();
}

解决方案

  1. 在 build.gradle 文件中添加了“[compileJava, compileTestJava].options.encoding = 'UTF-8'”。
  2. 再次通过 gradle 导航构建项目。
  3. 重新启动 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


【解决方案1】:

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

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

【讨论】:

  • 我明白了...好的,我在 build.gradle 文件中添加了以下行后重新启动了 Intelij,因为您建议链接线程并且它有效!谢谢 :) [compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 2014-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多