2011-12-20 22 views
6

Para visualizar correctamente texto UTF-8 en un WebView, por lo general utilizan un doctype y una etiqueta de meta:codificación UTF-8 en la vista Web e ICS

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

y utilizo una punta que he visto en la pila overflow:

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

que funciona muy bien en pan de jengibre y las versiones anteriores de Android, pero mi Nexus S ha recibido recientemente la actualización Ice Cream Sandwich, y los personajes franceses como é, à, è, etc. una se muestra así: é, por ejemplo.

No sé si la codificación ISO-xxxx-1 es la solución, pero si alguien tiene el mismo problema, por favor, comparta.

img

+0

Usted podría estar interesado por este post: http://stackoverflow.com/a/9312031/62921 – ForceMagic

+0

posible duplicado de [Android. WebView y loadData] (http://stackoverflow.com/questions/3961589/android-webview-and-loaddata) – ForceMagic

Respuesta

13

intente utilizar el método loadDataWithBaseURL con cadena aleatoria de los otros parametros en lugar de loadData

+4

Resuelvo el problema manteniendo el tipo de documento, elimino el método URLEncoder.encode y llamo a otros 2 métodos que dicen que: webView.getSettings(). setDefaultTextEncodingName ("utf-8"); webView.loadDataWithBaseURL (null, html, "text/html", "utf-8", null); – Sakaroz

+0

Gracias, el comentario anterior funciona como un amuleto :) – prdatur

+0

No puedo mostrar el signo de exclamación invertido (¡, ¡, ¡) usando cualquiera de estos métodos. ¿Alguien sabe cómo solucionar esto? –

Cuestiones relacionadas