DB2 데이터베이스가 UTF-8 인코딩을 사용 중입니다. Μπορώ να φάω σπασμένα γυαλιά χωρίς να πάθω τίποτα
체코 어 : Mohu JIST SKLO, neublíží 마일
세르비아어 : Ја могу да једем стакло
소스 테이블은
그리스어 아래에이 라인 같은 UTF-8 텍스트 하나 콜 럼이있다 내 자바 코드가이 일을한다 (.. 관련이없는 부분을 잘라 냈다 ..)
JDBC를 사용하여 UTF-8 데이터베이스를 쿼리하는 방법
ResultSet rs = stmt.executeQuery("SELECT SAMPLE_TEXT FROM UNICODE_TEST");
File file = new File("Unicode.txt");
BufferedWriter outFile = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file),"UTF8"));
while (rs.next()) {
outFile.write(rs.getString("SAMPLE_TEXT"));
outFile.write("\n");
}
내 파일의 결과는 모든 소스 테이블에서와 같이하지 않습니다. 내가 얻을이 대신
그리스어 : ÎœÏ € οÏÏŽ νΠ± Ï † Î¬Ï ‰ ÏƒÏ € Î ± σμÎνΠ± Î³Ï ... Î ± Πιά Ï ‡ Ï ‰ III, νΠ± Ï € λ
체코어 ± Î ¬Î¸Ï ‰ I "II € οÏ"Mohu JAST SKLO을 neublÞà 마일
세르비아어 : DD ° могу Ð'Ð ° Ñ~ÐμÐ'Ðμм ÑÑ,Ð ° кРо»
내가 무엇을 놓쳤는가?
varchar 대신 nvarchar와 유사한 DB2를 사용하고 있는지 여부를 알 수 없습니다. 어쩌면 당신은 출력을 unencoded 얻고있다 그리고 당신은 문자열 클래스를 사용하여 자신을 다시 인코딩해야합니다 (그리고 바이트 배열로 열을 읽을). 또한 UTF-8을 사용하기 위해 db2 데이터베이스로 설정해야하는 매개 변수가 있는지 점검하십시오. – Luciano
@ Luciano. 데이터베이스는 defnitely UTF-8입니다. 열은 varchar (200)입니다. 유니 코드 인식 SQL 쿼리 도구를 사용하여 검색 할 수 있기 때문에 내용이 UTF-8 인 것을 알 수 있습니다. 예상 한대로 정확하게 출력됩니다. – user754425
생성 된 파일을 보려면 어떤 프로그램을 사용하고 있습니까? – david