The charset
attribute is missing in HTTP response Content-Type
header. Jsoup will resort to platform default charset when parsing the HTML. The Document.OutputSettings#charset()
won't work as it's used for presentation only (on html()
and text()
), not for parsing the data (in other words, it's too late already).
You need to read the URL as InputStream
and manually specify the charset in Jsoup#parse()
method.
String url = "http://www.latijnengrieks.com/vertaling.php?id=5368";
Document document = Jsoup.parse(new URL(url).openStream(), "ISO-8859-1", url);
Element paragraph = document.select("div.kader p").first();
for (Node node : paragraph.childNodes()) {
if (node instanceof TextNode) {
System.out.println(((TextNode) node).text().trim());
}
}
this results here in
Aeneas dwaalt rond in Troje en zoekt Creüsa.
Creüsa is echter op de vlucht gestorven
Plotseling verschijnt er een schim.
Het is de schim van Creüsa.
De schim zegt:'De oorlog woedt!'
Troje is ingenomen!
Creüsa is gestorven:'Vlucht!'
Aeneas vlucht echter niet.
Dan spreekt de schim:'Vlucht! Er staat jou een nieuw vaderland en een nieuw koninkrijk te wachten.'
Dan pas gehoorzaamt Aeneas en vlucht.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…