2011-12-20 3 views
6

Per visualizzare correttamente testo UTF-8 in un WebView, io di solito uso un doctype e un tag meta:codifica UTF-8 su WebView e ICS

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

e io uso un suggerimento che ho visto su Stack Overflow:

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

che funziona bene su Gingerbread e versioni di Android più anziani, ma il mio Nexus S ha recentemente ricevuto l'aggiornamento Ice Cream Sandwich, e personaggi francesi come é, à, è, ecc una viene visualizzato in questo modo: é, ad esempio.

Non so se la codifica ISO-xxxx-1 è la soluzione, ma se qualcuno ha avuto lo stesso problema, si prega di condividere.

img

+0

Potreste essere interessati da questo post: http://stackoverflow.com/a/9312031/62921 – ForceMagic

+0

possibile duplicato di [Android. WebView e loadData] (http://stackoverflow.com/questions/3961589/android-webview-and-loaddata) – ForceMagic

risposta

13

provare a utilizzare il metodo di loadDataWithBaseURL con stringa casuale per gli altri, invece di params loadData

+4

risolvo il problema mantenendo il doctype, rimuovendo il metodo URLEncoder.encode e chiamando altri 2 metodi come: webView.getSettings() setDefaultTextEncodingName ("utf-8").; webView.loadDataWithBaseURL (null, html, "text/html", "utf-8", null); – Sakaroz

+0

Grazie, il commento sopra funziona come un fascino :) – prdatur

+0

Non riesco a mostrare il punto esclamativo invertito (¡, ¡, ¡) utilizzando uno di questi metodi. Qualcuno sa come lavorarci? –