我在资源文件夹中有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字符! 那我该怎么办?
答案 0 :(得分:0)
经过大量搜索并测试其他一些代码,最后我用另一个代码替换了我的HTML文件。我的代码运行正常!我调查以前的HTML文件,并注意到它具有Unicode编码! 因此,如果您遇到同样的问题,请首先检查文件的编码并确保其正确无误。