<< Android-Note
HTMLソースを読み込むときのWebViewの文字化け
WebViewにURLからではなく直接HTMLソースを渡して表示するには次の2つのメソッドを使う方法があります。
- loadData(String data, String mimeType, String encoding)
- loadDataWithBaseURL(String baseUrl, String data, String mimeType, String encoding, String historyUrl)
どちらのメソッドも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コードを文字コードに使っているので、文字コードを指定しない場合、次のように文字化けしてしまいます。
そこでWebViewでloadDataWithBaseURLメソッドを使って文字コードを指定してあげます。
webView.loadDataWithBaseURL(null, htmlSource, "text/html", "UTF8", null);
loadDataメソッドについても同じように文字コードは渡せますが機種によっては文字化けしてしまう場合もあるようです。
© Kaz