【发布时间】:2023-03-21 17:22:01
【问题描述】:
文本来自网页,并且已经在ISO-8859-1;
首先让我给你看一个问题的例子。让我们说这是网页中的一段文字,Mark Helström。当我使用Jsoup 解析页面时,那段文本将变成:Mark Helström
以下是网页代码示例:
<body>
<p>Mark Helström</p>
</body>
这是我解析网页的代码:
String url = "http://localhost:8080/translator/test";
Document doc = Jsoup.connect(url).get();
System.out.println("charset=" + doc.outputSettings().charset());
doc.outputSettings().charset(Charset.forName("ISO-8859-1"));
System.out.println("charset=" + doc.outputSettings().charset());
for(Element code : doc.select("*")) {
System.out.println("code=" + code.ownText());
}
这是上面代码生成的输出:
charset=ISO-8859-1
charset=ISO-8859-1
code=
code=
code=
code=
code=Mark Helström
【问题讨论】:
-
不可能重复。这个方法我试过了,没用。
-
您能否在您尝试将内容解析为 ISO-8859-1 的位置显示您的代码?您当前拥有的是输出字符集,而不是输入。
-
@ZackTeater 我更新了我的问题,以便它包含您的解决方案。
-
您能更新示例 html 吗?似乎缺少 5 段。它可能是 ownText() 方法,它只显示元素的文本节点。如果有嵌入元素,则不会显示它。例如,
foo
。你可以试试 text() 吗?
标签: jsoup