Think Linux 2007/07/15 19:11
필자는 얼마전 EUC-KR DB 데이터를 기반으로 하는 커뮤니티를 UTF-8 으로 마이크레이션해야 하는 난감한 임무를 부여받게 되었다.

기존 커뮤니티는 서버 이사를 가게 되었는데 새 서버는 앞으로 개발되는 프로그램을 UTF-8 인코딩으로 통일 하자는 취지에서 아파치 부터 MySQL 을 몽땅 UTF-8 환경을 바꾸어 놓았다.

우선 시급하게 새 서버로 이사를 가긴 해야 하는데.. 문제는 마이그레이션이 생각보다 쉽지 않았다..
잔 에러들이 너무 많이 발생하는데...
새 서버로 우선 임시적으로 돌릴 수 있는 방법이 없을까 하는 고민에서 부터 시작해서 해답을 얻게 되었다.

아파치의 defaultCharSet 이 UTF-8 으로 셋팅외었다 하더라고 .htaccess 를 이용해서 손쉽게 인코딩 문제를 해결 할 수 있었다.

웹 폴더 안에 .htaccess 파일을 생성하고 다음과 같이 입력한다.

AddDefaultCharset euc-kr
php_value default_charset euc-kr

이렇게 되면 아파치 웹문서 및 php 스크립트의 인코딩 모두 euc-kr 로 출력 된다.

MySQL 데이터는 어떻게 할까?
우선 기존의 EUC-KR 데이터를 그대로 옮겨 온다.
물론 그냥 접속해서 select 할 경우에는 모두 깨져 나오는데 간단한 쿼리문 2개로 해결할 수 있다.

SET CHARACTER SET euckr;
SET SESSION collation_connection = 'euckr_korean_ci';

스크립트 내에서 MySQL connect 부분 바로 아래 저 2개의 쿼리를 날려주면 문제 없이 출력이 된다.

'개발도 하냐?' 카테고리의 다른 글

공개SW 디지털교과서 이송재판, 메타냅 승소  (0) 2009.06.07
전자정부 웹표준 강화 종합대책  (0) 2009.06.02
한글 잔혹사 20년  (0) 2009.05.23
PHP 프레임워크  (0) 2009.05.22
Status Diagram  (0) 2009.05.18

+ Recent posts