¿Leyendo caracteres unicode extraños en Java?
Tengo el siguiente archivo de texto:
El archivo se guardó con codificación utf-8.
Usé el siguiente código para leer el contenido del archivo:
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());
La salida
s1 = 5
s2 = 4
Entonces intenté usars1.charAt(0);
para obtener el primer personaje de s1 y fue''
carácter (en blanco). Es por eso que s1 tiene la longitud de 5. Incluso si intenté usars1.trim();
su longitud aún 5. ¿No sé por qué sucedió eso? Funcionó correctamente si el archivo se guardó con codificación ASCII.