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

标签 android html character-encoding webview

我正在将我的一个应用程序翻译成西类牙语,但我在粘贴到 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/

相关文章:

java - Android 数据库连接

java - 在java中如何将带有整数的字符串转换为带有整数的数组?

css - 如何无缝对齐不同大小的 block div?

mysql - 是否可以全局配置 mysql 数据库中的所有 char/varchar/text 列以使用 utf8?

encoding - 将阿拉伯语单词转换为 windows-1252

android - 代码在 android 4.4 上运行但不在 android 6.0.1 上运行

java - 如何恢复 Activity 而不重新加载和处理其数据?

javascript - 如何再次使用强制 Jquery mouseenter fadein?

javascript - Canvas 游戏的滞后运动

docker - Jenkins 控制台打印编码字符