Java Jsoup以不同的方式解析某些字符

Java Jsoup以不同的方式解析某些字符,java,html,jsoup,Java,Html,Jsoup,我尝试使用Jsoup解析此html文件: <html><body>Maître Corbeau, sur un arbre perché</body></html> 当我尝试打印文档时: System.out.println(document.toString()); 两项产出: <html> <head></head> <body> Ma&icirc;tre Corbeau, sur u

我尝试使用Jsoup解析此html文件:

<html><body>Maître Corbeau, sur un arbre perché</body></html>
当我尝试打印文档时:

System.out.println(document.toString());
两项产出:

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

文学硕士和国际文学研究中心;科尔博河、阿尔布雷河畔和埃库特河;

为什么有些字符会改变?

很抱歉,但为什么这是错误的输出

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

阿尔布雷河畔科博街

在浏览器中,哪个是正确的,不是吗?如果您想获取包含解码内容的文本,则必须使用
document.text()
而不是
document.toString()
,因为第二个将为您提供HTML输出。 但请记住,您将失去HTML主体的所有标记结构。
如果您确实必须使用带有解码HTML实体的HTML代码,则必须使用Apache Commons Lang中的
StringEscapeUtils.unescapeHtml4(输入)
,因为您的输入HTML编码不正确。请阅读readFileToString方法的文档。如果不指定编码,它将是平台默认值。也许这就是你的问题。@Smutje我在html中添加了charset=“UTF-8”,但结果仍然相同。@Jakub Hr我尝试直接传递该文件,但输出结果仍然相同。所以我认为它不是readFileToString方法。当您尝试直接从文件解析时,是否定义了编码?顺便说一句,验证readFileToString是否与编码参数配合良好需要1分钟,因此值得一试。StringEscapeUtils.unescapeHtml4正是我所需要的
Ma&icirc;tre Corbeau, sur un arbre perch&eacute;