0

我正在尝试StringEscapeUtils.escapeHtml(String string)将网页上的特殊字符转换为 HTML 实体。但它也转义了五个基本的 XML 实体,即<、>、"、' 和 &,这使得我的 HTML 无法正确呈现,因为提到的字符被转义了。

所以在那之后我所做的就是使用StringEscapeUtils.unescapeXml(String string)<、>、"、' 和 &返回到它们的单个字符形式。

有没有其他方法可以做到这一点?不包括我在 StringEscapeUtils 进行 HTML 转义时提到的 5 个实体?

4

1 回答 1

0

您可以构建自己的翻译器:

public static final CharSequenceTranslator ESCAPE_HTML4 = new AggregateTranslator(
                    new LookupTranslator(EntityArrays.ISO8859_1_ESCAPE),
                    new LookupTranslator(EntityArrays.HTML40_EXTENDED_ESCAPE)
            );

这个特殊的翻译器忽略了EntityArrays.BASIC_ESCAPE()数据。

因此,它将转换特殊字符并省略 HTML 标记。

使用以下方法转换您的text变量:

text = ESCAPE_HTML4.translate(text);
于 2019-03-11T12:31:55.843 回答