将带有UTF8编码的Html文件从资源加载到TextView中

时间:2014-12-08 16:02:43

标签: java android unicode encoding utf-8

我在资源文件夹中有HTML文件,用UTF8编码(包含波斯文字符),我想读取这个文件并将其加载到TextView中。我阅读了很多帖子,如load utf-8 text file,{{3} },load HTML file into TextView并编写此代码:

try{
        InputStream inputStream = getResources().getAssets().open("htmls/salamati.html");
        // I also try "UTF-8" but none of them worked
        BufferedReader r = new BufferedReader(new InputStreamReader(inputStream,"UTF8"));
        StringBuilder total = new StringBuilder();
        String html;
        while ((html = r.readLine()) != null) {
            total.append(html);
        }
        // total contains incorrect characters
        textView.setText(Html.fromHtml(total.toString()));
    }
    catch (IOException exception)
    {
        textView.setText("Failed loading HTML.");
    }

但它显示不正确的字符! 我也尝试将total.toString()转换为UTF8字符串数组,然后将其添加到textView但它也不起作用

textView.setText(Html.fromHtml(new String(total.toString().getBytes("ISO-8859-1"), "UTF-8")));

textView或模拟器没有问题,因为当我从数据库加载HTML时,它正确显示utf8字符! 那我该怎么办?

1 个答案:

答案 0 :(得分:0)

经过大量搜索并测试其他一些代码,最后我用另一个代码替换了我的HTML文件。我的代码运行正常!我调查以前的HTML文件,并注意到它具有Unicode编码! 因此,如果您遇到同样的问题,请首先检查文件的编码并确保其正确无误。