파일에 iso-8859-1로 인코딩되어 있으며, ô 같은 문자가 포함되어 있습니다.Java 응용 프로그램 : iso-8859-1로 인코딩 된 파일을 올바르게 읽을 수 없습니다.
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://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4508058
- 하지만 여전히이 작업
는 흥미롭게도이 내 로컬 PC (XP)하지만 내 리눅스 상자에서 작동 얻을 수 없습니다.
내 JDK 사용 (그들은 표준, 그래서이 더 깜짝 없음) 필요한 캐릭터 세트를 지원하는지 확인했다: 당신이 당신의 내부에 뭐가 있는지보고 디버거에서 프로그램을 실행하려고 할 수있는 경우
System.out.println(java.nio.charset.Charset.availableCharsets());
필자는 단지 파일의 내용을 고양이가 쓰면 리눅스 터미널을 사용하여 문자 나 원본 파일을 올바르게 볼 수 있다고 덧붙여 야합니다. – Joel
터미널에서 어떤 문자 인코딩을 사용하고 있습니까? – McDowell
흥미롭게도 - 런타임 Java 속성 "-Dfile.encoding = UTF16"을 추가하면 예상대로 작동하지만, 왜 이것이 중요한지는 알 수 없지만 해결책으로 보지는 않지만 해킹을 더 많이 보게됩니다. UTF8로 설정된 속성에서는 작동하지 않습니다. – Joel