Android: caracteres que codifican los archivos de recursos sin formato

Estoy en el proceso de traducir una de mis aplicaciones al español, y tengo un problema de encoding de caracteres con un archivo HTML sin procesar que me estoy quedando en WebView. Tengo la traducción al español del archivo en mi carpeta raw-es, y lo estoy leyendo con la siguiente función:

private CharSequence getHtmlText(Activity activity) { BufferedReader in = null; try { in = new BufferedReader(new InputStreamReader(getResources().openRawResource(R.raw.help), "utf-8")); String line; StringBuilder buffer = new StringBuilder(); while ((line = in.readLine()) != null) buffer.append(line).append('\n'); return buffer; } catch (IOException e) { return ""; } finally { closeStream(in); } } 

Pero en todas partes hay un personaje español en el archivo, hay un diamante con un signo de interrogación dentro cuando ejecuto la aplicación y mira la actividad que muestra el HTML. Estoy usando lo siguiente para cargar el texto en WebView:

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

Originalmente creé el archivo en Microsoft Word, así que estoy seguro de que hay algún tipo de problema de encoding de caracteres, pero no estoy seguro de cómo solucionarlo, y una búsqueda en Google no ayuda. ¿Algunas ideas?

No use loadData. Use loadDataWithBaseURL en su lugar. Tu dirías:

 mWebView.loadDataWithBaseURL( null, text, "text/html", "utf-8", null ); 

Tuve un problema similar con una traducción al francés en la que aparecían símbolos de diamantes con signos de interrogación en lugar de ciertos caracteres, incluidos los que había escapado. Lo solucioné abriendo propiedades de archivos en Eclipse y cambiando la encoding a “ISO-8859-1”. No sé si esto funcionaría para el español.