HTMLソースを読み込むときのWebViewの文字化け

WebViewにURLからではなく直接HTMLソースを渡して表示するには次の2つのメソッドを使う方法があります。

どちらのメソッドもHTMLソースを渡せばそれがHTML文章として表示されます。例えば次のようなコードです。

WebView webView = (WebView)findViewById(R.id.webView);
String htmlSource = "<p>WebViewに表示された<b>HTML文章</b>です。</p>";
webView.loadDataWithBaseURL(null, htmlSource, "text/html", null, null);

WebViewでは標準でAsciiコードを文字コードに使っているので、文字コードを指定しない場合、次のように文字化けしてしまいます。

文字化けして表示されたHTMLソース

そこでWebViewでloadDataWithBaseURLメソッドを使って文字コードを指定してあげます。

webView.loadDataWithBaseURL(null, htmlSource, "text/html", "UTF8", null);

loadDataメソッドについても同じように文字コードは渡せますが機種によっては文字化けしてしまう場合もあるようです。

関連項目
プライバシーポリシー