我想知道在转换后是否可以使用Jsoup取回原始字符串。
Document doc = Jsoup.parse("<html><body><span>→</span></body></html>");
String str = doc.toString();
System.out.println(str);
我希望输出相当于HTML(格式化)。 在这里&#34; rarr&#34;字符串被肢解。 那么,我必须使用什么功能?
答案 0 :(得分:0)
Pete Houston带我参加了issue 660。
您可以使用以下方式执行此操作:
doc
.outputSettings()
.charset("ascii")
.escapeMode(Entities.EscapeMode.extended);
String str = doc.toString();
输出将是:
<html>
<head></head>
<body>
<span>→</span>
</body>
</html>
但是输出与输入略有不同(→
而不是→
),因为:
根据HTML5命名的字符引用, http://www.w3.org/TR/2011/WD-html5-20110113/named-character-references.html
→
也与→
相同,与→
相同,→
...如你所知,jsoup在处理时进行验证(escape / unescape) 输入和映射实体中定义的HTML实体 - * .properties; 好吧,因为有几个实体的名字代表相同 在您的情况下,Unicode值
\u02192
,映射是使用第一个完成的 如果我没弄错的话就匹配。