Java - 转义除一些字符之外的HTML字符

时间:2015-10-20 15:30:09

标签: java html regex

我正在尝试在HTML代码中转义特殊字符,但标记中使用的字符除外(<,>,“,”和&)。我尝试搜索现有的库(即StringEscapeUtils )为此,但所有这些也逃脱<,>,“,'和& - 我不想逃避的角色。

例如,如果我有

<div>— £</div>

我希望将其转换为

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

我不希望它成为

&lt;div&gt;&mdash; &pound;&lt;/div&gt;

有没有办法在Java中做到这一点?

1 个答案:

答案 0 :(得分:0)

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


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> & &mdash; &pound; "</div>