Tengo un archivo codificado como iso-8859-1 y contiene caracteres como ô.Aplicación Java: no se puede leer el archivo codificado iso-8859-1 correctamente
Estoy leyendo este archivo con el código de Java, algo así como:
File in = new File("myfile.csv");
InputStream fr = new FileInputStream(in);
byte[] buffer = new byte[4096];
while (true) {
int byteCount = fr.read(buffer, 0, buffer.length);
if (byteCount <= 0) {
break;
}
String s = new String(buffer, 0, byteCount,"ISO-8859-1");
System.out.println(s);
}
Sin embargo, el carácter o ¿siempre confusa, por lo general el estampado a modo? .
He leído sobre el tema (y aprendí un poco en el camino) p.
- http://www.joelonsoftware.com/articles/Unicode.html
- http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4508058
- http://www.ingrid.org/java/i18n/utf-16/
pero todavía no puede conseguir este funcionamiento
Curiosamente esto funciona en mi PC local (XP), pero no en mi máquina Linux.
He comprobado que mi JDK compatible con los juegos de caracteres necesarios (que son estándar, por lo que esto no es una sorpresa) usando:
System.out.println(java.nio.charset.Charset.availableCharsets());
Debo agregar que puedo ver los caracteres o el archivo original correctamente usando mi terminal linux si simplemente cat el contenido del archivo – Joel
¿Qué codificación de caracteres está utilizando su terminal? – McDowell
Curiosamente, si agrego la propiedad java en tiempo de ejecución "-Dfile.encoding = UTF16" funciona como se esperaba, aunque no veo por qué esto debería importar, y no lo veo como una solución, sino más como un hack. No funciona con la propiedad establecida en UTF8. – Joel