2

EditText でテキストを取得し、そのテキストを WebView に表示します。次のコードは、ASCII 文字に対して機能します。非 ASCII 文字の場合、WebView のテキストは文字化けします。

String input = mEditText.getText().toString();
String html = makeHTML(input); // append HTML elements and headers including MIME and ENCODING header
mWebView.loadData(html, "text/html", "utf-8");

HTML に何か問題があると思ったので、テキストを変更せずに WebView に直接テキストを表示しようとしました。しかし、結果は同じでした。

String input = mEditText.getText().toString();
mWebView.loadData(input, "text/html", "utf-8");

makeText()Toast、EditText に非 ASCII テキストを問題なく表示します。

誰も答えを知っていますか?

4

2 に答える 2

1

WebViewは、特定の「安全でない」HTML文字を読み込めない場合があります。使用してみてください:

String input = mEditText.getText().toString();
String html = makeHTML(input);
String encodedHtml = URLEncoder.encode(html,"UTF-8");
mWebView.loadData(encodedHtml, "text/html", "utf-8"); 

URLEncoder.decode(encodedHtml、 "UTF-8")メソッドも役立つ場合があります。

于 2012-07-25T03:40:47.817 に答える
1

loadDataWithBaseURL(baseUrl, data, mimeType, encoding, historyUrl)最後に、を使用して問題を解決しますWebView

mWebView.loadData(data, mimeType, encoding)

mWebView.loadDataWithBaseURL("", data, mimeType, encoding, "")

同じように見えますが、実際には違います。

私の場合、loadData()文字を正しくエンコードできず、assetフォルダに保存されている画像を読み込めませんでした。

于 2012-07-25T10:24:37.047 に答える