2015-10-20 91 views
1

我试图转义HTML代码中的特殊字符,除了标记中使用的字符(<,>,“,'和&)我试图搜索现有的库(即StringEscapeUtils),但他们都逃脱<,>,“,'和& - 我不想逃避的角色。Java - 转义HTML字符不包括某些字符

举例来说,如果我有

<div>— £</div> 

我希望它转换为

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

我不希望它成为

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

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

回答

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>