私は、次のテキストファイルがあります。Javaで奇妙なユニコード文字を読み取っていますか?
ファイルはUTF-8エンコーディングで保存されました。
私は、ファイルの内容を読み取るために、次のコードを使用:
FileReader fr = new FileReader("f.txt");
BufferedReader br = new BufferedReader(fr);
String s1 = br.readLine();
String s2 = br.readLine();
System.out.println("s1 = " + s1.length());
System.out.println("s2 = " + s2.length());
出力:
s1 = 5
s2 = 4
その後、私はS1の最初の文字を取得するためにs1.charAt(0);
を使用しようと、それはでした''
(空白)文字。だから、s1の長さは5です。s1.trim();
の長さをまだ使用しようとしても、私はその長さがまだ5ではありません。 なぜそれが起こったのか分かりませんか?ファイルがASCIIエンコーディングで保存されていれば正しく動作しました。
IGNORE | REPLACE | REPORT
あなたが最初の行の末尾にスペースがないことを確認している間に選ぶことができますか?それ以外の場合は 'String.trim'を使用してください – scibuffこれはメモ帳のバグです。あなたはそれを報告すべきです。 – tchrist