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

Lösung: Umlaute in webview.loadData() falsch dargestellt

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Boni2k, 31.12.2009.

  1. Boni2k, 31.12.2009 #1
    Boni2k

    Boni2k Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    46
    Erhaltene Danke:
    14
    Registriert seit:
    10.11.2009
    Hallo zusammen,

    Möchte gerne eigene Erkenntnis beisteuern. Bei diesem Problem konnte mir Google nicht helfen, daher schreibe ich die Lösung zum Problem hier rein:

    Problem:
    Code:
    String data = "dasadsads üüüäääööö adsijdaisd";
    web.loadData(data, "text/html", "utf-8");
    Hierbei werden die deutschen Umlaute stehts falsch angezeigt.

    Lösung:
    Code:
    String data = "<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />dasadsads üüüäääööö adsijdaisd";
    web.loadData(data, "text/html", "utf-8");
    Die Angabe allein von utf-8 in der loadData-Methode reicht scheinbar nicht aus. Falls jemand dazu ne Erklärung hat - gerne :)

    Grüße!
     
    computer_freak bedankt sich.
  2. chrisonline, 29.01.2010 #2
    chrisonline

    chrisonline Android-Hilfe.de Mitglied

    Beiträge:
    51
    Erhaltene Danke:
    2
    Registriert seit:
    24.08.2009
    Ich habe das selbe Problem doch leider funktioniert das bei mir nicht.
    Wenn ich deinen code in meine app einfüge dann erhalte ich trotzdem anstatt den äü usw.. die Fragezeichen...

    Muss ich da irgendwo noch was einstellen, setzen?
     
  3. Boni2k, 29.01.2010 #3
    Boni2k

    Boni2k Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    46
    Erhaltene Danke:
    14
    Registriert seit:
    10.11.2009
    Meine Daten lade ich jetzt mit
    web.loadDataWithBaseURL("fake://fake.de", data, "text/html", "UTF-8", null);
    rein. Aber das hat auf die Darstellung keinen Unterschied. Sonst habe ich zur WebView nichts weiteres eingestellt. Du hast nicht zufällig ne spezielle Schriftart in Benutzung, die auf Android nicht installiert wird...?
     
    TheHawk und Sid312 haben sich bedankt.
  4. chrisonline, 29.01.2010 #4
    chrisonline

    chrisonline Android-Hilfe.de Mitglied

    Beiträge:
    51
    Erhaltene Danke:
    2
    Registriert seit:
    24.08.2009
    Nein habe ich nicht...

    Das ist der erste Teil meiner RAW-Datei.
    Ich lade die RAW-Datei im Ordner raw zur Laufzeit dazu, dann gebe ich das der WebView mit loadData.

    Die 3 Umlaut erscheinen bei mir mit ? ...

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Whats New</title>
    </head>
    <body>
    <font size="2">
    <p>
    ÄÜÖ Follow me on Twitter -
     
  5. Boni2k, 29.01.2010 #5
    Boni2k

    Boni2k Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    46
    Erhaltene Danke:
    14
    Registriert seit:
    10.11.2009
    Funktioniert bei mir.
    Da die für die Umlaute wichtige Zeile schon drin ist, solltest du die Seite ganz normal laden, ohne das, was ich dazugesetzt hab. Also nur:

    web.loadDataWithBaseURL("fake://fake.de", string, "text/html", "UTF-8", null);

    Grüße
     
  6. chrisonline, 29.01.2010 #6
    chrisonline

    chrisonline Android-Hilfe.de Mitglied

    Beiträge:
    51
    Erhaltene Danke:
    2
    Registriert seit:
    24.08.2009
    Super, wenn ich es mit loadDataWithBaseUrl mache dann funktioniert es.
    Wenn ich es mit loadData mache dann nicht!

    Danke für deine schnell Hilfe.
    Ich lasse es jetzt einfach mit loadDataWithBaseUrl.
     
  7. Boni2k, 29.01.2010 #7
    Boni2k

    Boni2k Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    46
    Erhaltene Danke:
    14
    Registriert seit:
    10.11.2009
    Wunderbar :)
    Ich muss loadDataWithBaseUrl() benutzen, da das normale loadData() manchmal Probleme beim darstellen komplexeren HTMLs hatte. Das nur so nebenbei :)
     
    computer_freak bedankt sich.

Diese Seite empfehlen