2012-06-28 67 views
2

我構建JSoup文件是這樣的:JSoup字符編碼問題#2

String user_agent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/A.B  (KHTML, like Gecko) Chrome/X.Y.Z.W Safari/A.B."; 
String url = "http://www.ncbi.nlm.nih.gov/pmc/articles/PMC24391/?tool=pubmed"; 
Document doc = return Jsoup.connect(url).userAgent(user_agent).get(); 

然後,我保存使用doc.toString()到文件,並在保存的文件我看到?替換的字符。例如5 μm將變爲5 ?m

如果我改變輸出設置使用ISO-8859-1字符集,它似乎沒問題。

任何人都可以解釋爲什麼這是?從我的理解,原來的HTML頁面是UTF-8,這是默認的Jsoup編碼..

回答

3

適合我工作。你的問題是其他地方引起的

最可能的原因是您沒有使用UTF-8保存文件。您應該使用OutputStreamWriter將指定字符編碼的字符寫入文件。

writer = new OutputStreamWriter(new FileOutputStream(file), "UTF-8"); 

此外,您還需要確保該文件查看器或任何過程中,你使用保存文件後,還利用整個管道UTF-8。另請參閱Unicode - How to get the characters right?

+0

這正是問題所在。它使用Java保存的默認字符集,即「MacRoman」。非常感謝! –

+0

不客氣。 – BalusC