【发布时间】:2018-03-05 17:04:07
【问题描述】:
我正在使用 UTF-8 编码解析 XML,其中包含一些中文、日文或卡纳达语我能够成功地在屏幕 (HTML) 页面中显示语言,但我想生成我只看到英文的 PDF...
我遇到了字体,但担心每种语言都有字体(抱歉,如果我错了)。
在调试模式下,当它转换为 UTF -8 时,我可以在变量中看到中文和其他语言,我看到 ?????????。
new String(myString.getBytes(Charset.forName("ISO-8859-1")),
Charset.forName("UTF-8"))
请帮助在 IText pdf 中显示任何语言
注意:我正在使用 UTF-8 解析 XML,当我从数据库中获取而不使用 UTF 或任何我能够在 excel 中打印的东西时...在 PDF 中,我认为我应该使用字体。
【问题讨论】:
-
听起来你自己还没有充分调试这个问题。例如,您为什么要尝试通过设置编码来解决“显示 unicode 字符”,而不是确保 PDF 生成代码设置正确的字体堆栈?如果没有显示您现在正在尝试的代码的代码,作为minimal reproducible example,我们不知道您实际上做错了什么,并且您的描述没有提供足够的信息让我们继续。请快速重读how to ask a good question 并相应地调整您的帖子。
-
XML 文档的编码是什么并不重要(只要您确实阅读了使用该编码的文档); XML 文档中的所有文本值都采用 Unicode。 (图书馆可能比定制的实现做得更好。)
-
这是Java,不是吗?请edit添加标签。 Java 字符串也是 Unicode (UTF-16)。您的代码是从 Java 字符串 (UTF-16) 到 ISO 8859-1 的有损转换,然后是从 UTF-8 的数据损坏转换,最终以 Java 字符串 (UTF-16) 结束。
-
new String(myString.getBytes(Charset.forName("ISO-8859-1")), Charset.forName("UTF-8"))- 如果这样的转换对于正确检索您的输入数据是必要的,那么您获得myString的方式已经有些可疑了。话虽如此,您的问题似乎与 iText 有关,但您既没有以任何方式展示您如何使用 iText 处理数据,也没有解释不希望的效果是什么或您真正想要什么。
标签: java xml pdf encoding utf-8