다운로드

Download Report

Transcript 다운로드

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)