Jsoup有特殊HTML符号的问题,‘ — 等等

我有一些HTML(字符串),我通过Jsoup,所以我可以添加一些东西到所有href和src属性,这很好。 但是,我注意到对于一些特殊的HTML字符,Jsoup正在将它们转换为 对于实际的人物 。 我输出前后的值,我看到了这个变化。

之前:

 THIS — IS A “TEST”. 5 > 4. trademark: ™ 

后:

 THIS — IS A “TEST”. 5 > 4. trademark: ? 

到底他妈发生了什么? 我特意将这些特殊字符转换为HTML实体,然后才能避免这种情况。 引号更改为实际引号字符,大于保持不变,商标变为问号。 AAAAAAA。

仅供参考,我的Jsoup代码正在做:

 Document document = Jsoup.parse(fileHtmlStr); //some stuff String modifiedFileHtmlStr = document.html(); 

谢谢你的帮助!

下面的代码将类似于输入标记。 它更改特定字符的转义模式,并设置ASCII模式以转义不支持Unicode的系统的TM符号。

输出:

 

THIS — IS A “TEST”. 5 > 4. trademark: ™

代码:

 Document doc = Jsoup.parse("" + "

THIS — IS A “TEST”. 5 > 4. trademark: ™

"); Document.OutputSettings settings = doc.outputSettings(); settings.prettyPrint(false); settings.escapeMode(Entities.EscapeMode.extended); settings.charset("ASCII"); String modifiedFileHtmlStr = doc.html(); System.out.println(modifiedFileHtmlStr);