Dies scheint für immer in irgendeiner Form oder Weise gebrochen worden zu sein.
Ausgabe 1733
Verwenden Sie loadDataWithBaseURL anstelle von loadData.
String scandinavianCharacters = "øæå";
webView.loadData(scandinavianCharacters, "text/html", "UTF-8");
webView.loadDataWithBaseURL(null, scandinavianCharacters, "text/html", "UTF-8", null);
Der Teil, der wirklich nervt, ist, dass loadData () auf dem Samsung Galaxy S II (4.0.3) einwandfrei funktioniert, beim Testen auf dem Galaxy Nexus (4.0.2) jedoch die Multi-Byte-Zeichen verstümmelt sind, sofern Sie nicht loadDataWithBaseURL ( ). WebView-Dokumentation
Neueste Versionen von Android
Einige berichten , eine Änderung im Verhalten der Anrufe die loaddata erfordern mimeType
aufzunehmen charset=utf-8
.
webView.loadData(scandinavianCharacters, "text/html; charset=utf-8", "UTF-8");
Sie können diese Formulierung auch mit verwenden WebSettings
WebView webView = (WebView) findViewById(R.id.DemoWebView);
WebSettings webSettings = webView.getSettings();
webSettings.setDefaultTextEncodingName("utf-8");
webView.loadData(scandinavianCharacters, "text/html; charset=utf-8", null);
Es ist erstaunlich, dass Android dieses grundlegende Problem immer noch nicht gelöst hat.