繁体   English   中英

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

[英]Java - Escape HTML characters excluding some characters

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

例如,如果我有

<div>— £</div>

我希望将其转换为

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

我不想成为

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM