Java-转义HTML字符,不包括某些字符

Java-转义HTML字符,不包括某些字符,java,html,regex,Java,Html,Regex,我正在尝试转义HTML代码中的特殊字符,但标记(、“、”和&)中使用的字符除外。我尝试搜索现有库(即StringEscapeUtils),但所有库也转义,“、”和&-我不想转义的字符 例如,如果我有 <div>— £</div> 在Java中有什么方法可以做到这一点吗?将此类添加到代码中。(该包是必需的,因为代码使用一些包范围的名称。) 现在可以使用 String html = "<div> & — £ \"</div> Fix.esca

我正在尝试转义HTML代码中的特殊字符,但标记(、“、”和&)中使用的字符除外。我尝试搜索现有库(即
StringEscapeUtils
),但所有库也转义,“、”和&-我不想转义的字符

例如,如果我有

<div>— £</div>

在Java中有什么方法可以做到这一点吗?

将此类添加到代码中。(该包是必需的,因为代码使用一些包范围的名称。)

现在可以使用

String html = "<div> & — £ \"</div>
Fix.escapeHtml(html)
String html=“&-”“
Fix.escapeHtml(html)
输出:

<div> & &mdash; &pound; "</div>
&&mdash;&mdash;&mdash;&mdash;&mdash

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);
    }
}
String html = "<div> & — £ \"</div>
Fix.escapeHtml(html)
<div> & &mdash; &pound; "</div>