[해결] perl mysql dbi 사용중 charset 문제.
perl에서 DBI를 이용하여 mysql서버에 접속하여 사용하고 있습니다.
이전까지는 한글처리가 없었기 때문에 간단히 사용하고 있었는데, 한글이 들어가니 문제가 되는군요.
0. 시스템 로케일은 UTF-8이고, 데이터베이스 서버의 데이터 베이스는 euckr로 설정되어 있습니다.
(클라이언트를 euckr로 설정하면 문제없기때문에 이렇게 설정하였습니다. 데이터베이스가 커져
옮기기도 쉽지 않고요.)
1. mysql 클라이언트를 소스 컴파일하여 설치 하였습니다. (컴파일옵션에 euckr추가)
2. perl-DBD-MySQL 을 설치할때 mysql 클라이언트가 새롭게 깔렸습니다.
(외부에 있는 mysql 서버를 사용합니다.)
문제는 perl 스크립트에서 한글이 깨져 나온다는 것인데 text::iconv 모듈을 설치하여 이것저것으로 바꾸어주어도
출력에서 한글이 계속 깨진다는 겁니다.
새로 설치된 mysql 클라이언트가 쿼리시에 한글이 아예 깨지는 상황을 해결하기 위해서
yum을 통해 인스톨된 mysql 클라이언트의 설정을 /etc/my.cnf에
[client]
default-character-set=euckr
을 추가하여 자동으로 설치된 mysql 클라이언트를 통해서도 한글로된 쿼리 결과를 얻을수 있었습니다.
그래도 perl에서는 여전히 한글이 깨져 나오고 있습니다.
아마도 perl에서 사용하는 라이브러리쪽이 여전히 UTF-8로 동작하고 있는것 같은데,
DBI의 connect 함수에서 전달하는 파라메터들도 없어 보이는데 어떤식으로 해결해야 할까요?
mysql에 연결한
mysql에 연결한 다음...
첫 SQL문으로 'set names euckr' 을 실행시켜 보시죠.
--
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.
----
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.
감사합니다.
감사합니다. 의도대로 아주 잘 해결되었습니다. ^^;
far and hard way
far and hard way
댓글 달기