Чтение странного символа юникода в 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.charAt(0); чтобы получить первый символ s1, и это было'' (пустой) символ. Вот почему s1 имеет длину 5. Даже если бы я попытался использоватьs1.trim(); его длина еще 5. Я не знаю, почему это произошло? Он работал правильно, если файл был сохранен с кодировкой ASCII.

Ответы на вопрос(5)

Ваш ответ на вопрос