我尝试使用 StringEscapeUtils.unescapeHtml4()替换HTML 5的符号,但我仍然有许多符号未被替换,例如&#34 ;&安培; NBSP"" &放大器;放大器&#34 ;.你会建议使用什么?
答案 0 :(得分:2)
 
和&
不是实体。
和&
是实体。如果你的字符串确实缺少;
,那就是他们没有被解码的原因。
我刚检查过(只是为了彻底!),StringEscapeUtils.unescapeHtml4
正确解码
和&
。
正确的解决方法是修复那些字符串中包含不完整实体的内容。
使用 
后,您可以解决问题,并使用&
将\u00A0
和&
转变为String#replace
和StringEscapeUtils.unescapeHtml4
:
// Ugly, technically-incorrect workaround (but we do these things sometimes)
String result =
StringEscapeUtils.unescapeHtml4(sourceString)
.replace(" ", "\u00A0")
.replace("&", "&");
...但它不是正确的,因为那些不是实体。最好纠正字符串。