问题
I want to replace certain characters with their respective HTML entities in an HTML response inside a filter. Characters include <
, >
, &
. I can't use replaceAll()
as it will replace all characters, even those that are part of HTML tags.
What is the best approach for doing so?
回答1:
From java you may try, Apache Commons Lang (legacy v2) StringEscapeUtils.escapeHtml().
or with commons-lang3: StringEscapeUtils.escapeHtml4().
Please note this also converts à
to à
& such
回答2:
If you're using a technology such as JSTL, you can simply print out the value using <c:out value="${myObject.property}"/>
and it will be automatically escaped.
The attribute escapeXml
is true
by default.
escapeXml
- Determines whether characters<,>,&,',"
in the resulting string should be converted to their corresponding character entity codes. Default value istrue
.
http://docs.oracle.com/javaee/5/jstl/1.1/docs/tlddocs/
来源:https://stackoverflow.com/questions/10978098/replace-characters-with-html-entities-in-java