これは、何らかの形または方法で永遠に壊れているようです。
1733年発行
loadDataの代わりにloadDataWithBaseURLを使用してください。
// Pretend this is an html document with those three characters
String scandinavianCharacters = "øæå";
// Won't render correctly
webView.loadData(scandinavianCharacters, "text/html", "UTF-8");
// Will render correctly
webView.loadDataWithBaseURL(null, scandinavianCharacters, "text/html", "UTF-8", null);
本当に厄介なのは、Samsung Galaxy S II(4.0.3)ではloadData()が正常に機能することですが、Galaxy Nexus(4.0.2)でのテストでは、loadDataWithBaseURL( )。WebViewドキュメント
Androidの最近のバージョン
mimeType
を含める必要があるloadData呼び出しの動作の変更を報告している人もいますcharset=utf-8
。
webView.loadData(scandinavianCharacters, "text/html; charset=utf-8", "UTF-8");
この定式化を次のように使用することもできます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);
Androidがまだこの基本的な問題を解決していないのは驚くべきことです。