1

我必须从 txt 文件中检索一些数据,然后在我的应用程序中显示这些数据。

我的问题是,如果我的 txt 中有特殊字符 'ø',则不会显示该字符,并且会显示一个 '?' 而是显示。

我试图检查数据

 if(string.charAt(i) == 'ø') do sth

或者

string.replace('ø' , 'O')

但是它们都不起作用,我认为Java根本无法识别该字符。

你有什么主意吗?

谢谢

编辑

这就是我读取数据的方式

String[] obj = getText(getActivity(), myTXT.txt").split("\n");

其中 getText 是:

    public String getText(Context c, String fileName){

    ByteArrayOutputStream outputStream = null;
    try {

        AssetManager am = c.getAssets();
        InputStream is = am.open(fileName); 

        outputStream = new ByteArrayOutputStream();
        byte buf[] = new byte[1024];
        int len;
        while ((len = is.read(buf)) != -1){
            outputStream.write(buf,0,len);
        }
        outputStream.close();
        is.close();

    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    return outputStream.toString();
}
4

1 回答 1

0

这些字符必须处于UTF-8编码状态,在保存文件时检查您的文件是否编码。创建一个InputStreamReader使用指定编码的构造函数的实例。

InputStreamReader r= new InputStreamReader(new FileInputStream(myFile),"UTF-8");
// read your contents here.
r.close();
于 2013-10-12T12:50:44.337 回答