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

B

Boni2k

Neues Mitglied
14
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!
 
  • Danke
Reaktionen: computer_freak
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?
 
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...?
 
  • Danke
Reaktionen: TheHawk und Sid312
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 -
 
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
 
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.
 
Wunderbar :)
Ich muss loadDataWithBaseUrl() benutzen, da das normale loadData() manchmal Probleme beim darstellen komplexeren HTMLs hatte. Das nur so nebenbei :)
 
  • Danke
Reaktionen: computer_freak

Ähnliche Themen

D
Antworten
23
Aufrufe
2.383
Data2006
D
OnkelLon
Antworten
13
Aufrufe
1.923
OnkelLon
OnkelLon
S
Antworten
9
Aufrufe
1.151
swa00
swa00
Zurück
Oben Unten