2011-12-20 2 views
6

Для корректного отображения UTF-8 текст в WebView, я обычно использую doctype и в meta тег:UTF-8 кодирование на WebView и ICS

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 

и я использую наконечник, что я видел на стек Переполнение:

string = URLEncoder.encode(string, "UTF-8").replaceAll("\\+", " "); 

Это прекрасно работает на Gingerbread и более старых версий Android, но мой Nexus S недавно получил обновление Ice Cream Sandwich, и французские символы, как é, à, è и т.д. re отображается следующим образом: é, например.

Я не знаю, является ли кодировка ISO-xxxx-1 решением, но если у кого-то была такая же проблема, поделитесь ею.

img

+0

Вы можете быть заинтересованы на этом посте: http://stackoverflow.com/a/9312031/62921 – ForceMagic

+0

возможными дубликат [Android. WebView и loadData] (http://stackoverflow.com/questions/3961589/android-webview-and-loaddata) – ForceMagic

ответ

13

Попробуйте использовать метод loadDataWithBaseURL со случайной строкой для другой Params вместо LoadData

+4

Я решаю проблему, сохраняя doctype, удаляю метод URLEncoder.encode и вызываю 2 других метода lika: webView.getSettings() setDefaultTextEncodingName ("UTF-8"). webView.loadDataWithBaseURL (null, html, "text/html", "utf-8", null); – Sakaroz

+0

Спасибо, комментарий выше работает как шарм :) – prdatur

+0

Я не могу показать инвертированный восклицательный знак (¡, ¡, ¡), используя любой из этих методов. Кто-нибудь знает, как это сделать? –

Смежные вопросы