1

주제: mysql 5버전 업그레이드 후 글자깨짐 문제

이전에 mysql4 버전에서 운영되던 것을 mysql5 버전으로 업그레이드 후
DB를 dump 해서 에디터플러스에서 utf-8로 인코딩 한 후 넣었는데
글자가 깨지네요.. 이걸 어떻게 해결해야 할까요?
에디터플러스에서 utf-8로 인코딩을 안 하면 문자열 문제로 DB에 넣어지지가 않네요.
아시는 분의 도움을 부탁합니다.

2

답글: mysql 5버전 업그레이드 후 글자깨짐 문제

dump 뜰 때 데이터 자체를 binary 모드로 뜨셔야 합니다.
그렇지 않을 경우.. utf-8로 인코딩된 상태로 '우겨넣어져 있던'(mysql4는 인코딩 설정을 지원하지 않음) 데이터가 그대로 출력되고 이것을 그대로 mysql5로 넣게 되면 모두 깨지지요.; mysql4에서 덤프뜬 sql 파일에는 인코딩 설정이 없기 때문에 mysql5에서 그 파일을 읽어올 때 iso-8859-1 인코딩으로 가정하게 되기 때문입니다.

에디터플러스를 안 써봐서 정확히는 모르겠습니다만 만약 파일을 열 때 utf-8로 인식해서 연 게 아니라면 utf-8로 저장하는 순간 utf-8로 인코딩되었다고 가정하고 처리되어야 할 문자들이 iso-8859-1 상태라고 가정하고 처리됨으로써 엉뚱한 변환 결과를 가져오게 될 수도 있습니다. (즉 이미 덤프뜬 데이터가 utf-8 인코딩되어 있는 것인데 이것을 다시 utf-8로 재인코딩하면...-_-)

가장 추천드리는 방법은 덤프 뜰 때 인코딩을 binary 모드로 해서 들어있는 데이터를 hexa code로 취급하게 출력을 해준 다음 mysql5로 넣기 전에 utf-8로 인코딩 지정하는 sql 명령어들을 추가해주는 겁니다. (create table 각 문 끝에 character set utf8 collate utf8_general_ci 뭐 이런 식으로...) 이렇게 하면 덤프뜬 파일에 문자열 데이터가 모두 hexa code로 들어있으므로 어떠한 편집기로 열더라도 일반 ASCII 파일 편집하는 것과 같아서 에디터에 의한 잘못된 인코딩 문제를 피할 수 있습니다.

daybreaker (2008-09-16 23:40:01)에 의해 마지막으로 수정

문제의 답은 우리 안에 있다.
내면에 귀를 기울여 보자.