CODE CAVE

[맥/리눅스] mysql 텍스트 인코딩 euc-kr 에서 utf-8로 변경하기 본문

ETC./TIP

[맥/리눅스] mysql 텍스트 인코딩 euc-kr 에서 utf-8로 변경하기

코드케이브 2016. 10. 31. 18:45

저는 맥북 사용자 입니다.


이번에 기존 사이트가 전부 euc-kr 로 되어있어서 파일~DB 까지 모두 utf-8로 변경하려고 하다가 막혔습니다.


맥에선 EUC-KR 인코딩 된 것은 읽지 못합니다!


저희는 닷홈호스팅을 사용하고 있습니다만 저희 실서버에서 SQL파일을 뽑아보니 EUC-KR 이더라구요,


이 SQL 파일을 새로 만든 아마존 RDS에 넣으려고 하니 문제가 발생했습니다.



그럼 천천히 따라하면서 euckr을 utf8로 변신 시켜봅시다 맥 사용자 여러분!



1. 일단 euc-kr 로 구성 되있는 실서버에서 DB 파일을 덤프합니다.


$> mysqldump -u[USERID] -p [DB NAME] > [덤프 되어 저장될 파일명]




위 과정을 거치면 금방 덤프 파일 (.sql)이 추출 됩니다.


이 파일은 euc-kr로 인코딩 되어있다고 가정합니다.

저희는 utf-8로 바꾸고 싶은 것이구요!


일단 다행히 맥에는 이런 인코딩 변환을 해주는 기본 기능인 iconv를 통해 텍스트 인코딩을 변경할 수 있습니다.




2. 덤프파일이 있는 곳에서 터미널을 엽니다.


터미널을 여셨으면 아래 명령을 수행 시킵니다.


$> iconv -c -f euc-kr -t utf-8 [euc-kr로 되있는 파일명] > [utf-8로 변환될 파일명]




딱 1,2 번 과정만 끝내시면 utf-8로의 변환은 끝난겁니다.

생각보다 간단하죠?


하지만 이대로 DB에 Import 할경우 들어가긴 들어가는데 Encoding이 EUC-KR로 되어있어서 한글이 깨지는 현상이 보일 수 있습니다.


그래서 3번 과정이 필요합니다.




3. 텍스트 편집기로 위에서 뽑아낸 utf-8 파일을 엽니다.


텍스트 내용 중 "euckr" (euc-kr아니고 euckr 입니다.)을 찾아서 "utf8" (utf-8아니고 utf8) 로 Replace 해줍니다.




4. 위 과정을 모두 마친 SQL 파일을 데이터베이스에 Import 합니다.


5. 테이블 인코딩이 변한 것을 확인합니다.


6. 한글데이터가 잘 나오는 것을 확인하고 뿌듯해합니다.





이제 euc-kr 은 점차 사라져가고 있는 추세인데요~ 옛날 제로보드 기반이나 구 사이트 같은 경우엔 아직 남아있더라구요,


인코딩 변경하는 것 생각보다 어렵지 않으니 한번씩 연습해보시고 실제 디비 이관할 때 도움 되시기를 바랍니다.