Java 为什么不';是否在此网页中正确呈现UTF-8字符(使用JSoup生成)?

Java 为什么不';是否在此网页中正确呈现UTF-8字符(使用JSoup生成)?,java,html,jsoup,Java,Html,Jsoup,在使用JSoup库解析和呈现页面时,处理字符集时遇到问题。以下是它呈现的页面示例: 如你所见,哪里应该有“字符”?而是被渲染(即使在查看源时) 这个页面是通过下载一个web页面,使用JSoup进行解析,然后在做了一些结构更改后再次重新呈现来生成的 我下载的页面如下: final Document inputDoc = Jsoup.connect(sourceURL.toString()).get(); outputDoc.outputSettings().charset(Charset.fo

在使用JSoup库解析和呈现页面时,处理字符集时遇到问题。以下是它呈现的页面示例:

如你所见,哪里应该有“字符”?而是被渲染(即使在查看源时)

这个页面是通过下载一个web页面,使用JSoup进行解析,然后在做了一些结构更改后再次重新呈现来生成的

我下载的页面如下:

final Document inputDoc = Jsoup.connect(sourceURL.toString()).get();
outputDoc.outputSettings().charset(Charset.forName("UTF-8"));
outputDoc.head().appendElement("meta").attr("charset", "UTF-8");
outputDoc.head().appendElement("meta").attr("http-equiv", "Content-Type")
            .attr("content", "text/html; charset=UTF-8");
创建输出文档时,我的操作如下:

final Document inputDoc = Jsoup.connect(sourceURL.toString()).get();
outputDoc.outputSettings().charset(Charset.forName("UTF-8"));
outputDoc.head().appendElement("meta").attr("charset", "UTF-8");
outputDoc.head().appendElement("meta").attr("http-equiv", "Content-Type")
            .attr("content", "text/html; charset=UTF-8");
有人能就我做错了什么提出建议吗


编辑:请注意,源页面是,并且正如您将看到的,它似乎正确呈现

问题最有可能出现在读取输入页面时,您也需要对源页面进行正确的编码。

问题最有可能出现在读取输入页面时,您还需要对源代码进行正确的编码。

每当您将响应的字符编码未涵盖的字符写入响应的输出流时,问号都是典型的。在提供响应时,您似乎依赖于平台默认的字符编码。站点的响应
内容类型
标题也通过缺少
字符集
属性来确认这一点

假设您使用servlet来服务修改后的HTML,那么您应该在编写修改后的HTML之前使用设置字符编码

response.setCharacterEncoding("UTF-8");
response.getWriter().write(html);

每当您向响应的outputstream中写入响应的字符编码未涵盖的字符时,问号是典型的。在提供响应时,您似乎依赖于平台默认的字符编码。站点的响应
内容类型
标题也通过缺少
字符集
属性来确认这一点

假设您使用servlet来服务修改后的HTML,那么您应该在编写修改后的HTML之前使用设置字符编码

response.setCharacterEncoding("UTF-8");
response.getWriter().write(html);

这看起来确实像是一个编码问题。也许在服务器上?如果您直接连接并查看返回的流,文本是否仍然存在“?”问题?源页面是,并且似乎呈现正确:-/它看起来确实像是编码问题。也许在服务器上?如果您直接连接并查看返回的流,文本是否仍然存在“?”问题?源页面是,并且似乎呈现正确:-/Jsoup不会在使用Jsoup.connect()检索页面时确定吗?Jsoup不会在使用Jsoup.connect()检索页面时确定吗?