Здається, це було порушено в якійсь формі чи моді назавжди.
Випуск 1733
Використовуйте loadDataWithBaseURL замість loadData.
String scandinavianCharacters = "øæå";
webView.loadData(scandinavianCharacters, "text/html", "UTF-8");
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
Деякі повідомляють про зміну поведінки викликів loadData, які вимагають mimeType
включення 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 все ще не вирішив цю основну проблему.