Página web en los datos: text / html no disponible con ciertas cadenas de contenido WebView text / html

Estoy usando el siguiente código Java para crear HTML para mostrar el contenido.

public String htmlFromArrayList(ArrayList<TSI> a) { StringBuilder returnStringBuilder = new StringBuilder(); for (TSI i : a) { returnStringBuilder.append("<h3>"); returnStringBuilder.append(i.itemTitle); returnStringBuilder.append("</h3><p>"); returnStringBuilder.append(i.itemText); returnStringBuilder.append("</p>"); } return returnStringBuilder.toString(); } 

Para cargar la cadena que uso

 mWebView.loadData(htmlFromArrayList(mSummaryItemArrayList), "text/html", null); 

Ahora esto trabaja para cerca de 60% a 70% de mi ArrayList<TSI> , pero para los otros consigo un error cuando abro la TSI :

The web page at data:text/html;null,%3Cp%E.......p%3E might be temporarily down or it may have moved...

Estoy asumiendo que esto tiene algo que ver con personajes extraños en el juego de caracteres. Que quiere decir el mensaje de error?

¿Tiene caracteres extraños como signos de porcentaje, barras invertidas u otros caracteres no alfabéticos en su i.itemText o i.itemTitle? Si lo hace, eso hará que el problema de "página web no encontrada".

http://code.google.com/p/android/issues/detail?id=4401

Además, no está pasando en una codificación, trate de pasar en "UTF-8" en lugar de null.

 mWebView.loadData(htmlFromArrayList(mSummaryItemArrayList), "text/html", "utf-8"); 

Este problema se puede solucionar reemplazando todos los símbolos% con la entidad HTML (Ampersand Pound 37): (& # 37).

Hay informes de que si algún personaje chino se introduce en su webView, todavía puede obtener el problema de "página no encontrada" incluso si maneja el signo de porcentaje. Así que el trabajo alrededor es probar esto:

Esto funciona con todo más los caracteres chinos:

 mWebView.loadData(URLEncoder.encode(html,"utf-8").replaceAll("\\+"," "), "text/html", "utf-8"); 

Fuente http://code.google.com/p/android-rss/issues/detail?id=15

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.