как определить кодировку WebPage и получить содержимое страницы? - PullRequest
1 голос
/ 23 августа 2010

Я использую следующий код для получения содержимого страницы:

URL url=new URL("http://www.google.com.hk/intl/zh-CN/privacy.html");
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openConnection().getInputStream()));
for(String line=reader.readLine();line!=null;line=reader.readLine()){
    System.out.println(line);
}
reader.close();

page: http://www.google.com.hk/intl/zh-CN/privacy.html кодировка "UTF-8", но моя системная кодировка по умолчанию - "GBK", поэтому этот код не может быть набран правильно.

я знаю, что могу написать имя набора символов в конструкторе InputStreamReader:

new InputStreamReader(url.openConnection().getInputStream(),"UTF-8")

все будет хорошо, но я хочу знать:

как определить кодировку и получить содержимое страницы? (лучше не отправлять два запроса)

любая библиотека Java может сделать это? (получить содержимое веб-страницы, и не нужно устанавливать имя набора символов)

спасибо за помощь:)

1 Ответ

1 голос
/ 23 августа 2010

Нет действительно простого способа определить правильную кодировку.Вы можете надеяться, что интересующая вас веб-страница объявляет кодировку с помощью тега <meta charset="utf-8">.Когда вы обнаружите этот тег, вы можете переключить кодировку вашего анализа.

Существуют также некоторые библиотеки, которые пытаются обнаружить кодировку, например, http://jchardet.sourceforge.net/.

...