【发布时间】:2017-03-10 04:05:48
【问题描述】:
这就是我所拥有的-
String html = "<p><b>Annie's and Lärabar</b></p>"
运行以下 -
org.jsoup.nodes.Document doc = Jsoup.parse(html);
Element p= doc.select("p").first();
String s = p.text();
System.out.println(s);
输出 - "Annie's and L?rabar".
字符“ä”变成了问号。
我的JVM环境是“iso-8859-1”,在我看来Jsoup的默认编码是utf-8。我想强制 Jsoup.parse() 在解析 html 字符串时使用“iso-8859-1”。
我阅读了 API 和谷歌搜索的示例,但我找不到任何一个示例表明 Jsoup.parse() 在解析字符串时实际上可以采用特定的编码?
有人可以帮忙吗?提前谢谢!
-辛
【问题讨论】:
-
为什么你认为问题根源是
Jsoup编码?如果您打印原始 HTML,将正确打印变音符号,例如System.out.println(html);? -
因为我追踪了代码。该字符一直正确显示,直到“org.jsoup.nodes.Document doc = Jsoup.parse(html);”行之后
-
System.out.println(html);是否正确地将单词Lärabar打印到控制台?如果html变量内容没有正确打印,那么显然问题不在于Jsoup。您输出到的控制台编码可能存在问题。尝试将程序输出重定向到文件并在文本编辑器中以 UTF8 编码文本形式打开此文件。
标签: java string jsoup iso-8859-1