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

あなたの問題はエンコーディングの1つです。ファイルはバイトのみを保存します。

バイトを文字にマップする方法はたくさんあります(これらの方法はエンコーディングと呼ばれます)。

テキストファイルから読み取るときは、使用するエンコーディングを知っ指定する必要があります。

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 に答える