Android文本文件导入

时间:2011-08-15 22:30:17

标签: java android encoding character

我正在尝试导入一个文本文件,只需使用android即可在textview中显示。

该文件名为“legal”,位于res / raw

我使用以下代码读取文件...

        BufferedReader bufferreader = new BufferedReader(new
        InputStreamReader(getResources().openRawResource(R.raw.legal), Charset.forName("UTF8")));
        String bufferLine;
        String tempText = "";
        try
        {
            while ((bufferLine = bufferreader.readLine()) != null)
            {
                tempText = tempText + bufferLine + "\n";
            }
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }

当我尝试在TextView中显示tempText时,方向性“智能”引号显示为未知字符。文本文件legal是用UTF8编码的(使用notepad ++)。我似乎无法弄清问题是什么。

1 个答案:

答案 0 :(得分:1)

您确定“UTF8”是有效的字符集名称吗? the documentation for Charset似乎建议使用UTF-8

我通常只是做

InputStreamReader(inputStream, "UTF-8")

并没有任何问题。我有utf编码的html风格的问题。与&#UNICODENUMBER;

中一样

这解决了这些问题

txtView.setText(Html.fromHtml(str).toString());

修改

由于上述内容对您没有帮助,我会尝试以下方法:

txtView.setText(Html.fromHtml("“" + " Hello World " + "”").toString());

只是看看使用的字体是否支持字符(我猜你是在卷曲引号之后)。如果它确实呈现,则必须存在读取文件的方式(即使 - 看起来足够有效)或实际文件的问题。

希望有所帮助:)