100 likes | 604 Views
jConnect 에서 한글 처리문제 및 해결방안. CS&S Sybase Korea jseo. 목 차. jConnect 를 사용할 때 문제점 해결 방안 Connection String 설정방법 ASE version. jConnect 를 사용할 때 문제점. ASE default charset 에 따라 다르게 동작함 Eucksc
E N D
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 적용 • 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"; JAVA_CHARSET_MAPPING=""; c) CHARSET="utf8"; 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>"; JAVA_CHARSET_MAPPING="ms949";
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)