InputStreamReader没有读取čžš字符

时间:2013-01-23 13:32:26

标签: java android text bufferedreader

我正在处理一个项目,但是当我从文件中读取时,它无法读取某些字符(例如čžš等。)我不这样做知道我做错了什么。

这是我的代码:

try {
    reader = new InputStreamReader(getAssets().open("koce_podatki.txt"));
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

BufferedReader br = new BufferedReader(reader);
for(int i=-1;i<position;i++){
    try {
        temp = "" + br.readLine();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

try {
    reader.close();
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

2 个答案:

答案 0 :(得分:7)

您的问题是编码之一。文件只存储字节。

有许多方法可以将字节映射到字符(这些方式称为编码)。

当您从文本文件中读取内容时,您必须知道指定使用哪种编码。

如果你在Java中指定编码,将使用平台默认编码,可能是也可能不是

在您的情况下,您想要的是什么。要解决此问题,请找出正确的编码并在the InputStreamReader constructor中指定。

要尝试的常见编码是UTF-8。如果您告诉我们您看到的内容而不是那些字符,我们可以帮助您猜测正确的编码。

答案 1 :(得分:-1)

尝试这种方式:

try {
    reader = new InputStreamReader(getAssets().open("koce_podatki.txt"));
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

    BufferedReader in = new BufferedReader(reader);

    while( (s = in.readLine()) != null) {


    String UTF8Str = new String(s.getBytes(),"UTF-8"));
    temp=""+UTF8Str;

    }