Чтение странного символа юникода в 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.