用Java中的等效字符替换HTML 5代码

时间:2016-01-21 15:12:32

标签: java html5 stringescapeutils

我尝试使用 StringEscapeUtils.unescapeHtml4()替换HTML 5的符号,但我仍然有许多符号未被替换,例如&#34 ;&安培; NBSP"" &放大器;放大器&#34 ;.你会建议使用什么?

1 个答案:

答案 0 :(得分:2)

&nbsp&amp不是实体。  &是实体。如果你的字符串确实缺少;,那就是他们没有被解码的原因。

我刚检查过(只是为了彻底!),StringEscapeUtils.unescapeHtml4 正确解码 &

正确的解决方法是修复那些字符串中包含不完整实体的内容。

使用&nbsp后,您可以解决问题,并使用&amp\u00A0&转变为String#replaceStringEscapeUtils.unescapeHtml4

// Ugly, technically-incorrect workaround (but we do these things sometimes)
String result =
    StringEscapeUtils.unescapeHtml4(sourceString)
    .replace("&nbsp", "\u00A0")
    .replace("&amp", "&");

...但它不是正确的,因为那些不是实体。最好纠正字符串。