如何在Android Textview中显示ë和ê等字符?

时间:2015-01-20 07:43:04

标签: android utf-8 textview

我的资源文件夹中有一个文本文件,其中有一些德语和中文文本。我用这段代码来读取文件

 public String loadJSONFromAsset() 
   {
        String json = null;

        try {

            InputStream is = getActivity().getAssets().open("name.json.txt");

            int size = is.available();

            byte[] buffer = new byte[size];

            is.read(buffer);

            is.close();

            json = new String(buffer, "UTF-8");


        }
        catch (IOException ex) {
            ex.printStackTrace();
            return null;
        }
        return json;

    }

但是当我在TextView中显示时,它会在菱形内显示为问号。我的代码出了什么问题?有人请帮忙。

2 个答案:

答案 0 :(得分:2)

这可能是因为您的文件在使用MS记事本时默认使用不同的字符集进行编码,例如 ANSI 。您可以尝试使用不同的字符集来获得预期的结果。

json = new String(buffer, "ISO8859-1");

答案 1 :(得分:0)

尝试这种方法:

try {
File fileDir = new File("name.json.txt");

BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(fileDir), "UTF8"));

String str = null;

while ((str = in.readLine()) != null) {
    System.out.println(str);
}

        in.close();
} 
catch (UnsupportedEncodingException e) 
{
    System.out.println(e.getMessage());
} 
catch (IOException e) 
{
    System.out.println(e.getMessage());
}
catch (Exception e)
{
    System.out.println(e.getMessage());
}