我尝试从URL读取html内容。当我不想将内容打印到控制台“Umlaute”时,如ä,ö,ü显示错误。
URL url = new URL("http://www.lauftreff.de/laeufe/halbmarathon-1-2017.html");
URLConnection conn = url.openConnection();
InputStreamReader input = new InputStreamReader(conn.getInputStream(),StandardCharsets.ISO_8859_1);
BufferedReader bi = new BufferedReader(input);
String inputLine;
while((inputLine = bi.readLine()) != null){
System.out.println(inputLine);
}
在html的标题中,charset的信息说ISO_8859_1。 UTF-8也不起作用。 有谁有想法该怎么办?
答案 0 :(得分:0)
在网站中,Umlaute被解码为HTML实体。所以你需要解码那些。下面的代码应该可以使用,但是未经测试。
URL url = new URL("http://www.lauftreff.de/laeufe/halbmarathon-1-2017.html");
URLConnection conn = url.openConnection();
InputStreamReader input = new InputStreamReader(conn.getInputStream(),StandardCharsets.ISO_8859_1);
BufferedReader bi = new BufferedReader(input);
String inputLine;
while((inputLine = bi.readLine()) != null){
inputLine = StringEscapeUtils.unescapeHtml4(inputLine);
System.out.println(inputLine);
}