我必须将字符编码为Html:
< to <
> to >
' to '
" to "
& to &
我在PHP中寻找像htmlspecialchars这样的实用函数:
String htmlspecialchars(String inputText)
是否可以使用JSoup对这些字符进行编码?
(我在Spring框架中找到了htmlEscape,但我不想仅仅为这个简单的函数使用Spring框架。)
答案 0 :(得分:8)
Apache Commons有StringEscapeUtils,它有escapeHtml方法。
import org.apache.commons.lang.StringEscapeUtils;
public class MainClass {
public static void main(String[] args) {
String strHTMLInput = "<P>MyName<P>";
String strEscapeHTML = StringEscapeUtils.escapeHtml(strHTMLInput);
String strUnEscapeHTML = StringEscapeUtils.unescapeHtml(strEscapeHTML);
System.out.println("Escaped HTML >>> " + strEscapeHTML);
System.out.println("UnEscaped HTML >>> " + strUnEscapeHTML);
}
}
http://www.java2s.com/Tutorial/Java/0500__Apache-Common/StringEscape.htm
答案 1 :(得分:2)
答案 2 :(得分:1)
你可以用Jsoup伪造它,但我确信其他解决方案更彻底,可能更少浪费。您可以使用以下的一些变体:
public static String escapeHtml(String text) {
return (new TextNode(text, "")).toString();
}
有了这个,
System.out.println(HtmlUtils.escapeHtml("I <don't> \"want\" to see &s and >s."));
的产率:
I <don't> "want" to see &s and >s.
您会注意到问号未被转义。
答案 3 :(得分:0)
如果类路径上已经有 JSoup,只需使用 org.jsoup.nodes.Entities#escape(java.lang.String)