【问题标题】:Java - Escape HTML characters excluding some charactersJava - 转义 HTML 字符,不包括某些字符
【发布时间】:2016-01-19 08:31:03
【问题描述】:

我正在尝试转义 HTML 代码中的特殊字符,但标签中使用的字符(、“、' 和 &)除外。我尝试为此搜索现有库(即 StringEscapeUtils),但所有其中还转义了 、"、' 和 & - 我不想转义的字符。

例如,如果我有

<div>— £</div>

我想把它转换成

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

我不想这样

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

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

【问题讨论】:

    标签: java html regex


    【解决方案1】:

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

    
    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);
        }
    }
    

    现在可以在不使用 &lt;, &gt;, &amp;, " 的情况下转义 HTML

    String html = "<div> & — £ \"</div>
    Fix.escapeHtml(html)
    

    输出:

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

    【讨论】:

      猜你喜欢
      • 2012-12-27
      • 2012-01-26
      • 2011-12-08
      • 2017-12-02
      • 2012-09-09
      • 2017-08-21
      • 1970-01-01
      • 2011-06-03
      • 1970-01-01
      相关资源
      最近更新 更多