如何删除 Jsoup 中的 HTML 实体?

bar*_*ikk 5 html java jsoup

如何使用 Jsoup 删除 HTML 实体?如果我使用 Element.toString(),我会得到:

(...)
       <td>Letter &oacute;</td> //valid: <td>Letter ó</td>
(...)
Run Code Online (Sandbox Code Playgroud)

Sas*_*sha 7

这可能与您的问题的上下文无关,但如果您只想解码 HTML 实体而不对字符串进行任何其他更改(无标记处理、无注释剥离等),您可以使用org.jsoup.parser.Parser.unescapeEntities,例如:

assert Parser.unescapeEntities("x &asymp; <i>y</i>\n", true)
    .equals("x ? <i>y</i>\n");
Run Code Online (Sandbox Code Playgroud)


Але*_*сей 4

我相信您可以在创建 Jsoup 文档时指定编码,如下所示:

Document newDocument = Jsoup.parse(htmlString, StringUtils.EMPTY, Parser.htmlParser());
newDocument.outputSettings().escapeMode(EscapeMode.base);
newDocument.outputSettings().charset(CharEncoding.UTF_8);
Run Code Online (Sandbox Code Playgroud)

  • EscapeMode.base 不适用于 óąś,但我设置为 xhtml :) 谢谢 (2认同)
  • EscapeMode.base 是默认值 (2认同)