首页 > 解决方案 > 创建 PDF 时法语语言环境的字符编码 - Java

问题描述

我有一个将 XML 文档呈现为 PDF 的 Spring Boot 应用程序。该文档包含法语字符,例如é à. 通过 STS 运行应用程序时,PDF 按预期生成没有问题。但是,在使用java -jar target\application.jar生成的 PDF 通过命令行运行应用程序时,法语字符为é Ã. 我正在将 XML 转换为 byte[] 并创建 PDF。我想不出办法。任何帮助深表感谢。

标签: javaspring-bootcharacter-encodingpdfboxflying-saucer

解决方案


两种选择:

  1. 使用参数强制编码file.encoding,例如-Dfile.encoding=utf-8.

    java -Dfile.encoding=utf-8 -jar target\application.jar
    
  2. (更好)当您将xml文件转换为字节数组时,指定编码:

    Reader reader = new InputStreamReader(new FileInputStream("/path/to/xml/file"), StandardCharsets.UTF_8);
    // do your file reading ...
    

推荐阅读