[英]Display ® registered trademark symbol in Android v4.0 WebView?
源HTML字符串(包括符號)來自strings.xml資源文件,並注定要在WebView中顯示。 我已經在資源中對此進行了測試:
<string name="MY_STRING">®</string>
®
時,我會看到相同的結果®
®
失敗,並且該項目無法生成。 這是將字符串資源推送到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問題。
字符串資源並非旨在容納任意HTML,包括任意實體引用。
你也許能得到一個任意實體引用,如果你預先逃脫它的工作:
<string name="MY_STRING">&reg;</string>
IIRC,應解碼為®
在調用getString()
。
最后,您需要獲取®
到WebView
。 如果您無法確定使用字符串資源的方法,則需要將該值存儲在其他位置。
您正在使用loadData(html,“ text / html”,“ UTF-8”); 此方法期望變量html中有一個html字符串。 但事實並非如此。 嘗試
String html = "<html><body>My text is ®</body></html>";
例如。
-更新為具有完整的html文檔
如果將其存儲在資源文件中,請使用:
<string name="MY_STRING" formatted="false"><html><body>My text is ®</body></html></string>
這不是Android開發人員的答案,但是如果您嘗試向某人發送短信並且Ⓡ和™都不可用作符號(例如在我的LG手機Android 7.0上),則只是簡單一些。 只需從此消息線程中復制這些符號,然后將其發送給自己,或將其塞入快速備忘錄中即可。 然后,您可以隨時使用它們以備將來使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.