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

Replacing of HTML 5 codes with equivalent characters in Java

我正在尝试使用 StringEscapeUtils.unescapeHtml4() 替换 HTML 5 的符号,但我仍然有很多符号没有被替换例如“ ”、“&”。你会推荐使用什么?

&nbsp&amp 不是实体。  & 是实体。如果您的字符串确实缺少 ;,这就是它们未被解码的原因。

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

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

你可以解决它,在使用 StringEscapeUtils.unescapeHtml4 之后使用 String#replace&nbsp&amp 变成 \u00A0&

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

...但这不正确,因为它们不是实体。最好把字符串改正。