我正在构建这样的JSoup文档:
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 charset,似乎没问题。
任何人都能解释为什么会这样吗?根据我的理解,原始的html页面是UTF-8,这是默认的Jsoup编码..
答案 0 :(得分:3)
对我来说很好。你的问题是由其他地方引起的。
最可能的原因是您没有使用UTF-8保存文件。您应该使用OutputStreamWriter
将指定字符编码的字符写入文件。
writer = new OutputStreamWriter(new FileOutputStream(file), "UTF-8");
此外,您需要确保文件查看器或保存文件后使用的任何进程 - 在整个管道中也使用UTF-8。另请参阅Unicode - How to get the characters right?