1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Quelltext auslesen - falsches Charset

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von MetBo, 14.01.2011.

  1. MetBo, 14.01.2011 #1
    MetBo

    MetBo Threadstarter Fortgeschrittenes Mitglied

    Beiträge:
    264
    Erhaltene Danke:
    4
    Registriert seit:
    14.05.2010
    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
     
  2. MetBo, 19.01.2011 #2
    MetBo

    MetBo Threadstarter Fortgeschrittenes Mitglied

    Beiträge:
    264
    Erhaltene Danke:
    4
    Registriert seit:
    14.05.2010
    Hat keiner einen Lösungsvorschlag?
     
  3. emha, 20.01.2011 #3
    emha

    emha Junior Mitglied

    Beiträge:
    41
    Erhaltene Danke:
    0
    Registriert seit:
    25.12.2009
    Hast schon UTF-8 probiert?
     
  4. MetBo, 20.01.2011 #4
    MetBo

    MetBo Threadstarter Fortgeschrittenes Mitglied

    Beiträge:
    264
    Erhaltene Danke:
    4
    Registriert seit:
    14.05.2010
    Ja klar, aber das ist anscheinend nicht das richtige Charset?
     
  5. emha, 20.01.2011 #5
    emha

    emha Junior Mitglied

    Beiträge:
    41
    Erhaltene Danke:
    0
    Registriert seit:
    25.12.2009
    Meines erachtens ist das dass Richtige Charset. Ich würds nochmal probieren, vill. verschrieben oder an der falschen stelle?
     
  6. MetBo, 20.01.2011 #6
    MetBo

    MetBo Threadstarter Fortgeschrittenes Mitglied

    Beiträge:
    264
    Erhaltene Danke:
    4
    Registriert seit:
    14.05.2010
    Nein, die Umlaute werden auch bei diesem Charset nicht richtig angezeigt.
     
  7. Bobert, 20.01.2011 #7
    Bobert

    Bobert Erfahrener Benutzer

    Beiträge:
    161
    Erhaltene Danke:
    15
    Registriert seit:
    21.11.2010
    Phone:
    Nexus S
    Hallo,

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

    [​IMG]

    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
     
  8. MetBo, 20.01.2011 #8
    MetBo

    MetBo Threadstarter Fortgeschrittenes Mitglied

    Beiträge:
    264
    Erhaltene Danke:
    4
    Registriert seit:
    14.05.2010
    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?
     
  9. Bobert, 20.01.2011 #9
    Bobert

    Bobert Erfahrener Benutzer

    Beiträge:
    161
    Erhaltene Danke:
    15
    Registriert seit:
    21.11.2010
    Phone:
    Nexus S
    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.
     
  10. MetBo, 21.01.2011 #10
    MetBo

    MetBo Threadstarter Fortgeschrittenes Mitglied

    Beiträge:
    264
    Erhaltene Danke:
    4
    Registriert seit:
    14.05.2010
    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.
     
  11. themed, 02.03.2011 #11
    themed

    themed Neuer Benutzer

    Beiträge:
    2
    Erhaltene Danke:
    0
    Registriert seit:
    02.03.2011
    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: 03.03.2011
  12. Sonnenfreund, 04.05.2011 #12
    Sonnenfreund

    Sonnenfreund Neuer Benutzer

    Beiträge:
    1
    Erhaltene Danke:
    0
    Registriert seit:
    04.05.2011
    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 :)
     

Diese Seite empfehlen