Java 使用jsoup对Html字符进行编码
我必须将字符编码为Html:Java 使用jsoup对Html字符进行编码,java,html,jsoup,Java,Html,Jsoup,我必须将字符编码为Html: < to < > to > ' to ' " to " & to & 是否可以使用JSoup对这些字符进行编码 (我在Spring框架中找到了,但我不想仅仅为了这个简单的功能而使用Spring框架。)JSoup是一个解析HTML的库 我认为你不能用它把特殊字符编码成HTML 最好的方法是编写自己的方法。您只需从Spring获取这个方法,就不需要设置整个框架。请参阅。A
< to <
> to >
' to '
" to "
& to &
是否可以使用JSoup对这些字符进行编码
(我在Spring框架中找到了,但我不想仅仅为了这个简单的功能而使用Spring框架。)JSoup是一个解析HTML的库 我认为你不能用它把特殊字符编码成HTML
最好的方法是编写自己的方法。您只需从Spring获取这个方法,就不需要设置整个框架。请参阅。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);
}
}
import org.apache.commons.lang.StringEscapeUtils;
公共类主类{
公共静态void main(字符串[]args){
字符串strHTMLInput=“MyName
”;
String strEscapeHTML=StringEscapeUtils.escapeHtml(strHTMLInput);
String strunescapethtml=StringEscapeUtils.unescapethtml(strescapethtml);
System.out.println(“转义HTML>>>”+街景HTML);
System.out.println(“UnEscaped HTML>>>”+strunescapethtml);
}
}
你可以用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."));
您将注意到问号没有转义。如果您已经在类路径上使用了JSoup,只需使用
org.JSoup.nodes.Entities#escape(java.lang.String)
好的,我将使用Spring的源代码(它似乎基于Jakarta Commons lang及其StringEscapeUtils类)。(我只是想我也可以使用JSoup对字符进行编码,因为我的项目中的其他任务也需要JSoup JAR。谢谢,这也行。我想著名的Google Guava的未来版本也会有转义器类。
System.out.println(HtmlUtils.escapeHtml("I <don't> \"want\" to see &s and >s."));
I <don't> "want" to see &s and >s.