StringEscapeUtils.escapeXml正在转换不应该的utf8字符

Mad*_*ady 6 java xml stringescapeutils

escapeXml函数正在将ѭѭ转换为ѭ Ѯ 我猜它不应该.我读到的是它只支持五个基本的XML实体(gt,lt,quot,amp,apos).

是否有一个只转换这五个基本xml实体的函数.

Bom*_*mbe 11

public String escapeXml(String s) {
    return s.replaceAll("&", "&amp;").replaceAll(">", "&gt;").replaceAll("<", "&lt;").replaceAll("\"", "&quot;").replaceAll("'", "&apos;");
}
Run Code Online (Sandbox Code Playgroud)


JB *_*zet 6

库的3.1版本javadoc说:

请注意,大于0x7f的Unicode字符是3.0,不再转义.如果您仍然希望使用此功能,可以通过以下方法实现:StringEscapeUtils.ESCAPE_XML.with(NumericEntityEscaper.between(0x7f,Integer.MAX_VALUE));

所以你可能使用旧版本的库.更新您的依赖项(或自己重新实现逃避:它不是火箭科学)