Исходная строка HTML (включая символ) поступает из файла ресурсов strings.xml и предназначена для отображения в WebView. Я проверил с этим в ресурсах:Дисплей ® зарегистрированный символ товарного знака в Android v4.0 WebView?
<string name="MY_STRING">®</string>
- Используя фактический символ товарного знака в ресурсах (®), проекты сборки, но при отображении в WebView он показывает, как «Тетрадь» (т.е. «A» circumflex, за которым следует зарегистрированный знак торговой марки) - т.е. показаны два символа, первый неправильный & нежелателен.
- Я вижу тот же результат при использовании ссылки на объект,
®
- Сбой
®
, и проект не строится.
Это код, который толкает строковый ресурс в 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, почему символ не отображается правильно?
ОБНОВЛЕНИЕ Я тестировал на других устройствах. Я могу воспроизвести эту проблему только на Galaxy Nexus на Android v4.04. На Nexus One v2.3.x, Wildfire S на v2.3.x и вкладке Samsung 10.1 на v3.2, он отлично работает. Я изменил заголовок вопроса, чтобы уточнить, что это проблема ICS.
Ресурсы String не предназначены для хранения произвольного HTML, включая произвольные ссылки на сущности. Попробуйте '' ® '' как литерал 'String' с' loadData() 'и посмотреть, работает ли он. Если это так, подумайте о сохранении этой информации в другом месте, кроме строкового ресурса. – CommonsWare
Это не похоже на проблему, связанную с ресурсами, так как webView.loadData ("
®