0

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

这是我的代码:

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();
}
4

2 回答 2

7

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

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

从文本文件中读取时,您必须知道指定要使用的编码。

如果您在 Java 中指定编码,则将使用平台默认编码,这可能是您想要的,也可能不是您想要的。

在你的情况下,这不是你想要的。要解决此问题,请找出正确的编码并在构造InputStreamReader函数中指定它。

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

于 2013-01-23T13:35:13.360 回答
-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;

    }
于 2013-01-23T13:38:35.233 回答