Điều này dường như đã bị phá vỡ trong một số hình thức hoặc thời trang mãi mãi.
Chương 1733
Sử dụng loadDataWithBaseURL thay vì loadData.
String scandinavianCharacters = "øæå";
webView.loadData(scandinavianCharacters, "text/html", "UTF-8");
webView.loadDataWithBaseURL(null, scandinavianCharacters, "text/html", "UTF-8", null);
Bây giờ, phần thực sự khó chịu là trên Samsung Galaxy S II (4.0.3) loadData () hoạt động tốt, nhưng thử nghiệm trên Galaxy Nexus (4.0.2), các ký tự nhiều byte bị cắt xén trừ khi bạn sử dụng loadDataWithBaseURL ( ). Tài liệu WebView
Các phiên bản gần đây của Android
Một số đang báo cáo sự thay đổi trong hành vi của các lệnh gọi loadData yêu cầu mimeType
phải bao gồm charset=utf-8
.
webView.loadData(scandinavianCharacters, "text/html; charset=utf-8", "UTF-8");
Bạn cũng có thể sử dụng công thức này với 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);
Thật ngạc nhiên là Android vẫn chưa giải quyết được vấn đề cơ bản này.