https://www.oschina.net/question/996055_136438
***************************************
我要解析這個網頁 http://sports.163.com/13/0830/22/97IFSI5I00051CD5.html
然后直接在獲得源碼后,使用select 只捕獲其中一部分 doc.select("textarea[id^=photoList]")
為何出現了這個情況呢、求大牛們幫忙解決啊 @紅薯
很奇怪的是,我用轉義符全部替換之后,直接打印在控制台,顯示正確,然后又用Jsoup.parse()這個方法,結果又成了這樣子、大神們,幫幫忙吧@jsoup
html()和outerHtml()的區別只是有沒有包含本層而已,最終底層方法是一樣的,所以這里確實轉義了。
其實也說得通,因為textarea里的內容是“文本”,html里的純文本內容,如果不進行轉義是不安全的。
當然這里你的需求是"保持原文",“轉義再反轉”其實是無法保持原文的。而且Apache的StringEscapeUtils的轉義范圍比Jsoup要小,所以其實反轉是不完整的。
有個比較hack的方法:
Document doc = Jsoup.connect("http://sports.163.com/13/0830/22/97IFSI5I00051CD5.html").get(); //清空jsoup的轉義表,會使jsoup失去轉義能力 Entities.EscapeMode.base.getMap().clear(); Elements elements = doc.select("textarea[id^=photoList]"); for(Element e:elements){ System.out.println(e.html()); }