2014-03-03 56 views
0

我試圖解析與Jsoup這個HTML文件:Jsoup解析某些字符不同

<html><body>Maître Corbeau, sur un arbre perché</body></html> 

我用這條線:

Document document = Jsoup.parse(input, "UTF-8"); 

當我嘗試打印的文檔:

System.out.println(document.toString()); 

兩種輸出:

<html> 
<head></head> 
<body> 
Ma&icirc;tre Corbeau, sur un arbre perch&eacute; 
</body> 
</html> 

爲什麼一些字符會改變?

+0

因爲您的輸入HTML編碼不正確。 – Smutje

+2

請閱讀readFileToString方法的文檔。如果你沒有指定編碼,它將成爲平臺默認值。也許這是你的問題。 –

+0

@Smutje我在html中添加了charset =「UTF-8」,但結果仍然相同。 – froi

回答

0

我很抱歉,但爲什麼這是錯誤的輸出?

Ma&icirc;tre Corbeau, sur un arbre perch&eacute; 

給你

馬î TRE Corbeau酒店,河畔未ARBRE鱸魚&eacute;

在瀏覽器中是正確的嗎?如果你想獲得帶有解碼內容的文本,你必須使用document.text(),因爲第二個會給你HTML輸出。但請記住,您將丟失HTML正文的所有標籤結構。 如果您確實必須擁有解碼後HTML實體的HTML代碼,則必須使用StringEscapeUtils.unescapeHtml4(input)Apache Commons Lang

+0

StringEscapeUtils.unescapeHtml4正是我所需要的 – froi