我正在将我的一个应用程序翻译成西类牙语,但我在粘贴到 WebView 中的原始 HTML 文件中遇到了字符编码问题。我的 raw-es 文件夹中有该文件的西类牙语翻译,我正在使用以下函数读取它:
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);
}
}
但是当我运行应用程序并查看显示 HTML 的 Activity 时,文件中到处都有一个西类牙字符,里面有一个带问号的菱形。我正在使用以下内容将文本加载到 WebView 中:
mWebView.loadData(text, "text/html", "utf-8");
我最初是在 Microsoft Word 中创建该文件的,所以我确定存在某种字符编码问题,但我不确定如何修复它,而且 Google 搜索也无济于事。有什么想法吗?
最佳答案
不要使用 loadData。请改用 loadDataWithBaseURL。你会说:
mWebView.loadDataWithBaseURL( null, text, "text/html", "utf-8", null );
关于Android:字符编码原始资源文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4917860/