1

UTF-8でエンコードされたファイルを次のように読み込もうとしています-

import java.io.*;

class main {
    public static void main(String[] args) throws java.lang.Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("temp.txt"), "UTF-8"));
        String line;
        line = br.readLine();
        line = line.trim();
        boolean val1 = line.length() != 0;
        boolean val2 = !line.startsWith("//");
        System.out.println(val1 + " " + val2);
        br.close();
    }
}

ファイルtemp.txtには、最初の行が含まれています-

//,<verb>,<verb>

したがって、出力は次のようになります。

true false

しかし、私は次のように出力を取得します

true true

誰かがこれを修正する方法を教えてもらえますか?

4

2 に答える 2

1

ファイルの先頭にBOM(バイト順マーカー)がある可能性があります。

UTF-8のこれらのBOMバイトは、0xEF0xBB0xBFです。これらは、UTF-8として保存するときにテキストエディタによって追加されたファイルの最初の3バイトにすぎません。おそらく、テキストエディタには、BOMなしでUTF-8テキストを保存するオプションが必要です。

于 2012-08-26T10:03:05.043 に答える
0

temp.txt をテキスト エディターで開き、.txt の前に文字がないことを確認します//

于 2012-08-26T09:58:10.777 に答える