2013-01-23 9 views
5

Sto usando il seguente codice per codificare il file html che si trova nella mia cartella delle risorse. Ho seguito vari link qui ma non ha avuto successo. Ecco il mio pezzo di codice.UTF-8 non codifica html in webview android

WebSettings settings = myWebVeiw.getSettings(); 
    //settings.setJavaScriptEnabled(true); 
    //myWebVeiw.getSettings().setJavaScriptEnabled(true); 
    settings.setDefaultTextEncodingName("utf-8"); 
    //settings.setDefaultTextEncodingName("ISO-8859-1"); 

    myWebVeiw.loadUrl("file:///android_asset/"+totaldays+".html"); 

Anche se si sta lavorando per altri personaggi, ma non è in grado di codificare â € .as la stampa stessa sulla vista web. Per favore suggeriscimi cosa fare.

Qualsiasi aiuto sarà apprezzato.

risposta

1

Potresti provare e verificare:

myWebVeiw.loadDataWithBaseURL("file:///android_asset/"+totaldays+".html", null, "text/html", "utf-8",null); 
+0

Sì, l'ho già provato ma non mostra altro che una pagina vuota. Può essere questo il motivo per cui l'html potrebbe non essere decodificato correttamente. – vyas

+0

questo non mostra l'html – ArdaA

0

Non così familiarità con WebView. Ma il browser analizza una codifica del charset html che segue: 1.primo charset .so per favore controlla il totaldays.html <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 2. secondo il contenuto.

+1

Meta non sta aiutando nel mio caso. come è html statico credo quindi ho provato da esso .. Attendo per il cliente. Immagino che questo potrebbe essere il cattivo decodificatore html del client, ecco perché non codifica su Android. – vyas

10

È necessario impostare la codifica di testo predefinita WebSettings su utf-8. E dopo forza il charset dell'intestazione html su utf-8. Exmple:

String htmlText = "<html> your page here </html>"; 
WebView web = (WebView) findViewById(R.id.webview); // get your webview from the layout 
WebSettings settings = web.getSettings(); 
settings.setDefaultTextEncodingName("utf-8"); 
web.loadData(htmlText, "text/html; charset=utf-8", "utf-8"); 

Questo funziona per me su Android 2.2.1, 4.0.4 e 4.1.2.

+3

con "text/html; charset = utf-8", "utf-8" ha funzionato per me. Grazie. (Android 5.0.1) – chrome

+1

"text/html; charset = utf-8" è il principale risolutore per me. Grazie! –