I tem um arquivo que é codificado como iso-8859-1, e contém caracteres, tal como O.
Estou lendo este arquivo com código java, algo 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);
}
No entanto, o caráter ô é sempre truncado, geralmente imprimir como um? .
Eu li em torno do assunto (e aprendeu um pouco sobre a maneira) eg
- 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/
mas ainda não pode começar este trabalho
Curiosamente isso funciona no meu pc local (xp), mas não na minha caixa de linux.
Eu verifiquei que o meu jdk suporta os conjuntos de caracteres necessários (eles são padrão, então isso é nenhuma surpresa) usando:
System.out.println(java.nio.charset.Charset.availableCharsets());