我正在尝试转义 HTML 代码中的特殊字符,除了标记中使用的字符(<、>、"、' 和 &)。我尝试为此搜索现有库(即 StringEscapeUtils
),但所有这些都也会转义 <、>、"、' 和 & - 我不想转义的字符。
例如,如果我有
<div>— £</div>
我希望将其转换为
<div>— £</div>
我不想这样
<div>— £</div>
有什么方法可以在Java中做到这一点吗?
最佳答案
将该类添加到您的代码中。 (该包是必需的,因为代码使用了一些包范围的名称。)
package org.apache.commons.lang;
public class Fix extends Entities {
public static final Entities HTML04;
static {
HTML04 = new Entities();
HTML04.addEntities(ISO8859_1_ARRAY);
HTML04.addEntities(HTML40_ARRAY);
}
public static String escapeHtml(String str) {
if (str == null) {
return null;
}
return HTML04.escape(str);
}
}
现在可以在没有 <, >, &, "
的情况下转义 HTML使用
String html = "<div> & — £ \"</div>
Fix.escapeHtml(html)
输出:
<div> & — £ "</div>
关于Java - 转义 HTML 字符(不包括某些字符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33240756/