在控制台中打印西班牙语文本并使用 Itext 7 将其写入 PDF 时出现问题

Issue while Printing Spanish Text in Console and writing the same into PDF using Itext 7

我从数据库中收到以下文本

"----- Some Text ------ Bônus -------- Some Text ------- "

我将它存储在一个 String 变量中并在控制台中打印该变量并将其写入 PDF,但问题是我在控制台和 PDF 中都没有以正确的格式获取文本,而是我得到 Bônus 作为 'Bônus' ,我参考了这个例子 http://itext.2136553.n4.nabble.com/Problem-with-spanish-character-td2163635.html

并将 gradle 文件中的编译器编码更改为,

compileJava.options.encoding = 'UTF-8'

但是问题还是没有解决

我给出的示例文本只是一个示例,还有许多其他单词会被更改或显示一个空框。

我需要从 IText 的角度来研究它吗?或编译器?

尽管更改编译器的 Unicode 没有帮助

检查您是否有 unicode 字体。这可能会导致您的情况出现问题。有设置字体的代码

BaseFont basefont = BaseFont.createFont("font_name.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);

然后就这样使用它:

Paragraph p = new Paragraph("text in unicode", new Font(basefont, 22));

经过一番搜索,我终于找到了 UTF 8 格式的文件

byte[] ptext = originalString.getBytes(ISO_8859_1);
String value = new String(ptext, UTF_8);

请找到我提到的link,

Encode String to UTF-8