응용개발

utf-8로 저장된 한글이 JAVA SP를 사용하여 읽어 오면 깨져 보일때

by 손승일 posted Mar 10, 2012

CUBRID JAVA StoredProcedure(이하 SP) DB Server Process가 구동 될 때 포함하여 함께 구동되는 JVM에서 동작한다.

따라서 SP를 통해 utf-8로 데이터베이스에 저장되어 있는 한글을 정상적으로 읽어 오려면 JVM의 디폴트 charset을 변경하여야 한다.

JVM의 디폴트 charset

1.     JVM이 구동되는 환경의 LANG을 변경하거나

2.     Java 옵션을 설정으로 변경할 수 있다.

 

JVM이 구동되는 환경의 LANG을 변경

먼저 ‘locale –a |grep ko_KR’ 명령을 수행하여 변경 가능한 utf-8 값을 확인한다.

[newTest1 ~]$ locale -a|grep ko_KR

ko_KR

ko_KR.euckr

ko_KR.utf8

변경 가능한 utf-8 locale 값을 LANG 환경변수에 설정한다.

[newTest1 ~]$ vi .bash_profile

export LANG=ko_KR.utf8

[newTest1 ~]$. .bash_profile

 

JAVA 옵션 설정으로 변경

_JAVA_OPTIONS 환경 변수를 설정한다.

[newTest1 ~]$ vi .bash_profile 

export _JAVA_OPTIONS=-Dfile.encoding=utf-8

[newTest1 ~]$. .bash_profile


JVM의 디폴트 charset을 변경하고 나서는 꼭 DB Server를 재 시작해줘야 한다.

[newTest1 ~]$ cubrid server restart DB_NAME 

 


Articles

1 2 3