Android:字符编码原始资源文件

时间:2011-02-07 03:29:43

标签: android html character-encoding webview

我正在将我的一个应用程序翻译成西班牙语,而且我正在使用原始HTML文件的字符编码问题,我正在坚持使用WebView。我在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的活动。我正在使用以下内容将文本加载到WebView中:

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

我最初是在Microsoft Word中创建的,所以我确定会出现某种字符编码问题,但我不确定如何修复它,Google搜索没有帮助。有什么想法吗?

2 个答案:

答案 0 :(得分:12)

不要使用loadData。请改用loadDataWithBaseURL。你会说:

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

答案 1 :(得分:0)

我在法语翻译中遇到了类似的问题,其中带有问号的钻石符号出现在某些角色的位置,包括我逃脱的角色。我通过在Eclipse中打开文件属性并将编码更改为" ISO-8859-1"来解决这个问题。不知道这对西班牙语是否有效。