2015-10-20 3 views
1

Я пытаюсь избежать специальных символов в своем HTML-коде, кроме символов, используемых в тегах (<,>, ", 'и &). Я попытался найти существующие библиотеки (т.е. StringEscapeUtils), но все они также ускользают от <,>, ", 'и & - персонажи, которых я не хочу убегать.Java - Escape 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> 
Смежные вопросы