Probleme beim auslesen von Quelltext (HTML)

ahretour

Mitglied
Hi! Ich denke viele von euch sind dem Problem von Schriftsatzcodierung schon mal begegnet.

Ich bin Student, und wir sind zur Zeit an einem Projekt beschäftigt, bei dem Fußballnews vom Quelltext einer Webseite ausgelesen werden sollen.

Hierfür habe ich folgenden Ansatz gewählt:

Java:
try{
      URL url = new URL("http://www.beispiel-webseite.de");
      InputStream is = url.openConnection().getInputStream();
            
      BufferedReader reader = new BufferedReader(new InputStreamReader(is));
      String line = null;
      while((line = reader.readLine()) != null ){
           System.out.println(line);
      }
      reader.close();
}

In dem Beispiel wird der Quelltext einer Webseite auf der Konsole ausgegeben.
Dies funktioniert soweit auch einwandfrei. Jedoch entsteht bei dem dem Auslesen ein Kodierungsfehler:

Java:
<category>Fu�ball</category>
Das ist ein Auszug aus den System.out's.

Zeichen wie 'ß', 'ö', 'ü' werden nicht erkannt und als Quadrate oder Fragezeichen dargestellt.

Kennt irgendjemand einen Weg, die Darstellung der Zeichen zu ermöglichen? Oder vielleicht kennt jemand einen anderen Weg für das Auslesen von Quelltext einer Webseite, bei der die Schriftkodierung dann auch der der deutschen Sprache entspricht, d.h. z.B. UTF-8 oder UTF-16?
 
Zuletzt bearbeitet:
Java:
      BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));

Löst das dein Problem?
 
Java:
      BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));

Löst das dein Problem?

Nein, leider nicht. Ich glaube das Problem liegt an dem InputStream, der von der Klasse URL kommt.
Die Kodierung dieses InputStreams ist wohl nicht UTF-8/UTF-16.

Ich schätze was ich bräuchte ist eine Alternative Lösung um den Quelltext auszulesen.

Hoffe jemand hat sich mit sowas schon mal beschäftigt 🙂
 
Die Codierung muss im HTML-Quelltext hinterlegt sein, sonst wüsste der Browser auch nicht, was er damit anfangen soll. Beim Java-Forum.org findet man z.B. folgenden Eintrag:
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

Gibt den Link oder suche die Codierung selbst. Vorher musst du eigentlich nicht um Hilfe bitten, da man sonst nur blind rumraten kann und die "richtige" Lösung evtl. nur nicht funktioniert, weil du die falsche Codierung genommen hast.
 
Die Codierung muss im HTML-Quelltext hinterlegt sein, sonst wüsste der Browser auch nicht, was er damit anfangen soll. Beim Java-Forum.org findet man z.B. folgenden Eintrag:


Gibt den Link oder suche die Codierung selbst. Vorher musst du eigentlich nicht um Hilfe bitten, da man sonst nur blind rumraten kann und die "richtige" Lösung evtl. nur nicht funktioniert, weil du die falsche Codierung genommen hast.

Hi! Es lag tatsächlich an der UTF-8 Kodierung. Hätte nicht gedacht dass ä,ö,ü usw. nicht in UTF8 intergiert sind 🙂

Habe einfach statt UTF-8, das hier benutzt:

Java:
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "ISO-8859-1"));

Und das Problem war gelöst!

Danke!!
 
Das liegt nicht daran, dass ä,ö,ü,... nicht in UTF-8 enthalten sind (das ist nämlich sehr wohl der Fall) sondern schlicht daran, dass auf der Seite eine andere Kodierung verwendet wurde..
 

Neue Themen


Zurück
Oben