Chcę pobierać zawartość internetów w formacie UTF-8 w taki sposób:
String url = "https://4programmers.net/Forum/Java/323982-jsoup_ustawienie_encoding_to_utf_8?p=1575353#id1575353"
String browser = "Mozilla/5.0"
Document doc = Jsoup.connect(url).userAgent(browser).get();
a potem doc.select("blablabla").attr("id").toString()
itd.
JAk ustawić encoding na samym początku? W dokumentacji widzę taką możliwość tylko przy Jsoup.parse()
czyli jak rozumiem musiałbym pobierać zawartość neta jakimś scanerem i potem jako tekst zapododawać do Jsoup.parse()
ale tak nie chcę...
użyłem tego:
Document getUrlDoc(String url) {
Connection connect = Jsoup.connect(url);
connect.request().followRedirects(false);
URI u = null;
try {
u = new URI(url);
} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Document doc = null;
try {
doc = connect.url(new URI(u.getScheme(), u.getUserInfo(), u.getHost(), u.getPort(),
URLDecoder.decode(u.getPath(), "UTF-8"), u.getQuery(), u.getFragment()).toURL()).get();
} catch (IOException | URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (connect.response().statusCode() == 301 && connect.response().header("Location") != null) {
return getUrlDoc(connect.response().header("Location"));
}
return doc;
}
masakra jakaś.