Question

utilisation i suit le code pour obtenir le contenu de la page:

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 charset est "UTF-8", mais mon charset par défaut du système est "GBK", donc, ce code ne peut pas taper droit.

Je sais, je peux écrire un charsetname dans le constructeur InputStreamReader:

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

il est sera ok, mais je veux savoir:

comment détecter charset et obtenir le contenu de la page? (Pas envoyer deux demandes mieux)

une bibliothèque java peut le faire? (Get page web contenu, et ne nécessitent pas ensemble charsetname)

Merci pour l'aide:)

Était-ce utile?

La solution

Il n'y a vraiment aucun moyen facile de détecter le charset approprié. Vous pouvez espérer que la page Web qui vous intéresse déclare le jeu de caractères à l'aide d'une balise <meta charset="utf-8">. Lorsque vous détectez cette balise, vous pouvez passer charset de votre analyse.

Il y a aussi des bibliothèques qui font un effort pour détecter le charset, par exemple http: //jchardet.sourceforge. net / .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top