Java JSoup字符编码问题#2

Java JSoup字符编码问题#2,java,character-encoding,jsoup,Java,Character Encoding,Jsoup,我正在构建一个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

我正在构建一个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字符集,看起来还可以


有人能解释为什么会这样吗?据我所知,最初的html页面是UTF-8,这是默认的Jsoup编码。

对我来说很好。你的问题是由别的地方引起的

最可能的原因是您没有使用UTF-8保存文件。您应该使用将指定字符编码的字符写入文件

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

此外,您需要确保文件查看器或保存文件后使用的任何进程在整个管道中也使用UTF-8。另请参见

这正是问题所在。它在Java存储上使用默认的字符集,即“MacRoman”。非常感谢!