有没有一种简单的方法可以将 XML 或 HTML 字符转换为其实体编号?我正在使用具有以下功能的 org.apache.commons.lang3:
StringEscapeUtils.escapeXml() StringEscapeUtils.escapeHtml4()
然而,这些是用实体名称而不是数字替换尖括号等。
例如 StringEscapeUtils.escapeXml("<"); //返回 < 但我需要 <
有没有办法让这些函数返回 < ?
谢谢你。
使用 Springsframework 中的 HtmlUtils
import org.springframework.web.util.HtmlUtils;
[...]
HtmlUtils.htmlEscapeDecimal("&")` //gives &
或者你可以试试这段代码:
public static String escapeHTML(String s) {
StringBuilder out = new StringBuilder(Math.max(16, s.length()));
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c > 127 || c == '"' || c == '<' || c == '>' || c == '&') {
out.append("&#");
out.append((int) c);
out.append(';');
} else {
out.append(c);
}
}
return out.toString();
}