簡體   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