Quelltext auslesen - falsches Charset

MetBo

MetBo

Erfahrenes Mitglied
4
Hallo,

mein Problem ist, dass ich beim auslesen einer Internetseite anscheinend das falsche Charset benutze - ich aber auch nicht weiß, welches das richtige Charset ist. Die Umlaute werden nicht richtig gelesen.

Mein Code zum Auslesen:
Code:
URL url_ = new URL(url);
		URLConnection conn = url_.openConnection();
		DataInputStream in = new DataInputStream ( conn.getInputStream (  )  ) ;
		BufferedReader d = new BufferedReader(new InputStreamReader(in, "iso-8859-15"));
		String content = "";
		while(d.ready())
		{
			content += d.readLine();
		}

Von dieser Seite möchte ich den Quellcode auslesen

Mein Output ist dieser:
Code:
I/System.out(22106): <?xml version="1.0" encoding="ISO-8859-15"?><!DOCTYPE html
PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN"    "http://www.wapforum.org/DTD/x
html-mobile10.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de"><hea
d><meta http-equiv="Cache-Control" content="max-age=300"/><meta http-equiv="Cont
ent-Type" content="application/xhtml+xml; charset=iso-8859-15" /><meta name="vie
wport" content="width=480; minimum-scale=0.6666; minimum-scale=0.6666;" /><link
rel="shortcut icon" href="http://golem.mobi/favicon.ico" type="image/x-icon" /><
link rel="canonical" href="http://www.golem.de/1101/80723.html" /><title>Spielet
est Tron Evolution: Fehler in der Systemarchitektur - Golem.de Mobil</title><sty
le type="text/css">body { margin: 0; padding: 0; background-color: white; color:
 black; font-weight: normal; font-size: 1em; font-family: "Verdana", "Geneva", "
Arial", "Helvetica", sans-serif; }a:link, a:visited { text-decoration: none; }a:
link { color: rgb(10,1,153);}a:visited { color: rgb(74,90,116);}a:hover a:active
 { text-decoration: underline; }h1, h2, h3 { margin: 0; font-size: 1em; font-wei
ght: bold; }h1, h2 { background-color: rgb(224,224,224); padding: 2px; }div.ul {
 padding: 3px; }div.ul p { margin: 0px 0px 3px 0px; padding: 0; line-height: 1.2
; border-bottom: 1px solid rgb(224,224,224); }div.ul p.last { margin: 0; border:
 none; }div#artikel { padding: 3px 3px 16px 3px; }div#artikel p { margin: 8px 0p
x; }div.artnav { margin: 0; padding: 2px; }div.artnav a { font-weight: normal; }
div.footer { margin: 0; padding: 2px; background-color: rgb(224,224,224); }div.f
ooter a { font-weight: bold; }span.pre { font-family: monospace; }img { border:
none; }</style></head><body><div><script type="text/javascript"><!--    var IVW=
"http://mobgolem.ivwbox.de/cgi-bin/ivw/CP/MOBI;";    document.write("<img src=\"
"+IVW+"?r="+escape(document.referrer)+"&d="+(Math.random()*100000)+"\" width=\"1
\" height=\"1\" alt=\"\" />");//--></script><noscript><img src="http://mobgolem.
ivwbox.de/cgi-bin/ivw/CP/MOBI;?d=1295032306" width="1" height="1" alt="" /></nos
cript><a id="top" href="/"><img src="/_img/glogo_s100.png" alt="Golem.de Mobil"
width="100" height="37" /></a></div><h1>Spieletest Tron Evolution: Fehler in der
 Systemarchitektur</h1><div id="artikel"><script type="text/javascript">/* <![CD
ATA[ */window.googleAfmcRequest = {client:'ca-mb-pub-2342548244565729',format:'3
20x50_mb',channel:'7389385935',ad_type:'image_text',alternate_ad_url:'',alt_colo
r:'',adtest:'',color_bg:'ffffff',color_text:'000000',color_border:'e0e0e0',color
_link:'0a0199',color_url:'008000',kw:'',kw_type:'',hints:'',contents:'',dai:'',w
rapper_id:'google_afmc_1243640695'};/* ]]> */</script><ins id="google_afmc_12436
40695" style="text-align:center;display:block"></ins><script type="text/javascri
pt" src="http://pagead2.googlesyndication.com/pagead/show_afmc_ads.js"> </script
><img src="http://www.golem.de/1101/80723-6687-tron-titel.jpg" style="margin: 6p
x 6px 0px 0px; float: left;" alt="" /><p>Kampfbereite Bits und Bytes, eklig damp
fende Computerviren und fiese Subroutinen: In der Welt von Tron Evolution k├Ânnt
e der Systemadministrator zum Superhelden mutieren - wenn er das Programm angesi
chts erheblicher Schw├ñchen nicht schnell wieder von der Festplatte l├Âscht.</p>
<p>Was geschah zwischen den Ereignissen des ersten Tron-Films und Tron Legacy, d
er am 27. Januar 2011 in den deutschen Kinos startet? Wer das wissen m├Âchte, mu
ss zu Tron Evolution greifen, dem vom Disney-eigenen Entwicklerstudio Progaganda
 Games produzierten Actionspiel f├╝r Xbox 360, Playstation 3 und Windows-PC. Dar
in erfährt er als Hauptfigur Anon (Kurz für "anonymous") mehr darüber, wie de
r von Jeff Bridges gespielte Kevin Flynn vor Legacy in die virtuelle Welt gerate
n und was ihm dort so alles widerfahren ist.</p><p> Anders als das letzte Tron-S
piel, der 2003 ver├Âffentlichte Tron 2.0, ist Evolution kein Ego-Shooter. Der Sp
ieler steuert Anon in der R├╝ckenansicht durch linear angelegte Umgebungen. Dabe
i gibt es zwar regelm├ñ├ƒig K├ñmpfe, die gr├Â├ƒere Herausforderung - auch wegen
Prob

Weiß jemand, wie ich die Umlaute richtig ausgelesen bekomme?

Danke,
Grüße
 
Hat keiner einen Lösungsvorschlag?
 
Hast schon UTF-8 probiert?
 
Ja klar, aber das ist anscheinend nicht das richtige Charset?
 
Meines erachtens ist das dass Richtige Charset. Ich würds nochmal probieren, vill. verschrieben oder an der falschen stelle?
 
Nein, die Umlaute werden auch bei diesem Charset nicht richtig angezeigt.
 
Hallo,

ich habe das genau wie Du gemacht und mir den content im einen TextView anzeigen lasen. Die Umlaute werden angezeigt!

bobert-albums-forumbilder-picture825-urllesen.png


Dort steht "...IBM Watson: Der Computer rät schneller..." Wenn ich die Seite aufrufe und mir die Seiteninformationen anschaue steht dort application/xhtml+xml; charset=iso-8859-15, genau was Du auch in deinen Code stehen hast.

Meiner Meinung nach ist der Fehler wo anders, wie zeigst Du dir denn HTML-text an.

Code:
package com.plebsapps.urllesen;

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class UrlLesen extends Activity {

    private TextView contentView;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        contentView = (TextView)findViewById(R.id.content);        
        
        try {            
            URL url_ = new URL("http://golem.mobi/1101/80721.html");
            URLConnection conn = url_.openConnection();
            DataInputStream in = new DataInputStream ( conn.getInputStream (  )  ) ;
            BufferedReader d = new BufferedReader(new InputStreamReader(in, "iso-8859-15"));
            String content = "";
            while(d.ready()) {
                content += d.readLine();
            }
            
            contentView.setText("Hallo" + content);
            
        }
        catch(Exception ex) {
            contentView.setText("Exception:" + ex.toString() + " = " +  ex.getMessage());
        }
        
        
    }
}

Gruß Bobert
 
Eigene WebClient Klasse:
Code:
public class WebClient extends WebViewClient {
	@Override
	public boolean shouldOverrideUrlLoading(WebView view, String url) {
		view.loadUrl(url);
		return true;
	}
}

Aufruf in einem Webview:
Code:
webContent.loadData(mArticle.getContent(), "html/text", "utf-8");

Der Quellcode wird in eine Datenbank gespeichert.
getContent ist eine Funktion, die den Quellcode aus einer Datenbank ausliest.

Liegt es dann vielleicht an der Datenbank?
 
Schau doch mal, ob die umlaute bevor Du es in die Datenbank schreibst noch korrekt sind, und dann halt wenn Du es aus der Datenbank holst.
 
Das Problem tritt bei mir wirklich in dem Funktionsblock, in der der Quelltext ausgelesen wird. Ich habe direkt danach eine Syso gemacht und dort werden schon die Umlaute nicht richtig dargestellt.
 
Hallo Leute, das Thema hat mir schon weitergeholfen...

Ich kann das Beispiel exakt nachbilden mit der URL (http://golem.mobi/1101/80721.html)
wenn ich aber z.b.: "http://diepresse.com/mobil" einsetze bekomme folgende Meldung:

"Exception:java.net.
UnknownHostException: Host is unresolved diepresse.com:80= Host is usw." zurück geliefert...

mhhh kann es damit zusammenhängen, dass ich nicht direkt auf eine HTML seite verweise?
Bin über jeden Hinweis dankbar.
lg med

EDIT
habs mit dem da geschafft
http://jsoup.org/apidocs/
 
Zuletzt bearbeitet:
Hallo,

ich kann z.B. google.de auch nicht auslesen. Es kommt zwar kein Fehler bei Boberts Methode jedoch wird der Inhalt einfach nicht angezeigt. Andere seiten wie test.de funktionieren...woran liegt das? :blink:

Bin noch ziemlicher einsteiger im App programmieren, ich hoffe hier kann man mir helfen :)
 

Ähnliche Themen

M
  • MikelKatzengreis
Antworten
10
Aufrufe
219
swa00
swa00
H
Antworten
2
Aufrufe
1.310
Hcman
H
M
  • maksimilian
Antworten
8
Aufrufe
1.268
jogimuc
J
Zurück
Oben Unten