jConnect에서 한글 처리문제 및 해결방안 CS&S Sybase Korea jseo
목차 jConnect를 사용할 때 문제점 해결 방안 Connection String 설정방법 ASE version
jConnect를 사용할 때 문제점 ASE default charset에 따라 다르게 동작함 Eucksc Ct-lib를 사용하는 applications(esql/c 포함)을 사용할 경우에 ASE 최근의 versions은 “확장한글”에 대한 입력/출력이 가능함. “똠방각하”, “미용샾”, “꺆”, … 그러나 java applications에서는 확장한글을 표시하지 못하고 '?'로 표시함. 왜냐하면 client-charset(“CHARSET”)을 eucksc로 명시하기 때문임
jConnect를 사용할 때 문제점 Cp949(확장한글 charset) java에서 지원하는 cp949는 초기 ksc5601 charset을 지원함. 그러므로 확장한글에 지원이 없음. 즉, Eucksc와 같은 charset임 한글 이외의 charsets(iso_1, roman8, ...) 한글 charsets이 아니므로 정상적인 처리 불가능 eucksc/cp949로 변환하여 처리함. 입.출력을 모두 eucksc/cp949로 처리하므로 확장한글이 깨진 상태(?)로 처리됨
해결 방안 최신 EBF 적용 새로운 connection string이 추가됨 jConnect 6.05, jConnect 7 or later 만 지원함 jConnect 6.05 ESD#24, jConnect 7.0 ESD#7부터 지원함 새로운 connection string이 추가됨 JAVA_CHARSET_MAPPING 모든 charsets(한글 이외의 charsets 포함)을 지원함 "CHARSET" property 설정은 불필요함. disable character set conversion에 영향받지 않음 Utf8을 제외한 모든 charset에 대하여 0/1 모두 가능함
Connection string 설정하는 방법 -ASE charset에 대하여 utf8 disable character set conversion: 0(default) =>필수적임 CHARSET,JAVA_CHARSET_MAPPING 명시하지 않거나 명시할 때에는 반드시 utf8만 명시할 것. Example a) CHARSET=""; JAVA_CHARSET_MAPPING=""; b) CHARSET="utf8"; c) JAVA_CHARSET_MAPPING="utf8";
Connection string 설정하는 방법 -ASE charset에 대하여 Other charsets disable character set conversion에 영향받지 않음 반드시 JAVA_CHARSET_MAPPING를 ms949로 설정함. Example a) CHARSET=""; JAVA_CHARSET_MAPPING="ms949"; b) CHARSET="<ASE default charset>";
Connection string 설정하는 방법 - Java source … try { info.put("user","sa"); info.put("password",""); info.put("JCONNECT_VERSION", "6"); info.put("JAVA_CHARSET_MAPPING", “MS949”); } catch(Exception e) {System.out.println("Property error");}
ASE version 아래 버전에서 테스트 됨 ASE 15.x(utf8, iso_1, roman8, cp949, eucksc) ASE 12.5.4(iso_1, eucksc)