iso-8859-1 としてエンコードされ、ô などの文字を含むファイルがあります。
次のようなJavaコードでこのファイルを読んでいます:
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);
}
ただし、ô 文字は常に文字化けし、通常は ? として出力されます。.
私はこの件について読みました(そして途中で少し学びました)。
- 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/
しかし、まだこれを機能させることはできません
興味深いことに、これはローカル PC (xp) では機能しますが、Linux ボックスでは機能しません。
次を使用して、jdkが必要な文字セットをサポートしていることを確認しました(これらは標準であるため、これは驚くことではありません)。
System.out.println(java.nio.charset.Charset.availableCharsets());