StringEscapeUtils.escapeHtml(String) тоже экранирует символ $?
Я хочу экранировать символ $ вместе с другими символами, такими как "<", ">" и т. Д. Так что я просто хотел узнать, поддерживает ли StringEscapeUtils это. И если нет, как я могу избежать этого?
2 ответа
Похоже нет. Вы можете попробовать это с этим кодом:
StringEscapeUtils.escapeHtml("<b>Hello, World!</b>$")
Выходы
<b>Hello, World!</b>$
Я протестировал, выполняя следующее из commons-text 1.1 после того, как commons-lang 3 устарел StringEscapeUtils
:
public static void main(String[] args)
{
System.out.println(StringEscapeUtils.escapeHtml4("$ % > < = #"));
}
Выход $ % > < = #
Он не экранирует "$" из коробки, но новые Utils в commons-text позволяют пользователям расширять его. Прочитайте эту статью для примеров. Вот маленький, но статья показывает более продвинутые возможности:
Map<CharSequence, CharSequence> added = new HashMap<>();
added.put("$", "foo");
System.out.println(StringEscapeUtils.ESCAPE_HTML4
.with(new LookupTranslator(added))
.translate("$ % > < = #"));
Выход foo % > < = #