ソース HTML 文字列 (記号を含む) は、strings.xml リソース ファイルから取得され、WebView に表示される予定です。リソースでこれをテストしました:
<string name="MY_STRING">®</string>
- リソース内の実際の商標記号 (®) を使用してプロジェクトをビルドしますが、WebView に表示すると "®" として表示されます (つまり、"A" サーカムフレックスの後に登録商標記号が続きます)。つまり、2 つの文字が表示されます。 、最初の不正確で不要なもの。
- エンティティ参照を使用すると、同じ結果が表示されます。
®
- の使用
®
は失敗し、プロジェクトはビルドされません。
これは、文字列リソースを WebView にプッシュするコードです。
String html = getString(R.string.MY_STRING);
((WebView)findViewById(R.id.terms_web_view)).loadData(html, "text/html", "UTF-8");
これも試しましたが、役に立ちませんでした: webView.getSettings().setDefaultTextEncodingName("UTF-8");
HTML 文字列を Logcat にプッシュしたところ、正常に表示され、シンボルが正しく表示されました。文字列に問題がなく、WebView が UTF-8 を使用するように設定されている場合、シンボルが正しく表示されないのはなぜですか?
更新 他のデバイスでテストしました。この問題は、Android v4.04 の Galaxy Nexus でのみ再現できます。Nexus One v2.3.x、v2.3.x の Wildfire S、v3.2 の Samsung Tab 10.1 では正常に動作します。これが ICS の問題であることを明確にするために、質問のタイトルを変更しました。