본문 바로가기
Database

Mysql Character set = utf8 설정 방법

by GoodDayDeveloper 2020. 10. 2.
반응형

Mysql Character set = utf8 설정

 

한글 깨짐 문제로 인한 캐릭터  확인  변경 작업이 많습니다.

DB 저장된 한글이 클라이언트에서  보이는 경우는 클라이언트의 인코딩 값을 변경해서 조치를   있습니다.

그러나 저장 당시의 인코딩 값이 서로 다른 한글이 들어가 있을 경우는 어떤 한글은 정상적으로 보이지만어떤 한글은 깨져서 보이는 경우가 발생하게 됩니다..

이러한 경우는, MySQL 기본으로 서버 캐릭터 셋이 latin1으로 설정 되어 있어서 DB 생성  캐릭터  값을 지정해주지 않으면 latin1으로 생성이 됩니다..

또한, utf8로 설정을 하게 되더라도 아래 사진과 같이 전부가 아닌 client와 conn의 characterset이 euckr로 되어 있는 경우에도 한글이 깨지거나 혹은 나중에 프로그램에 문제를 일으킬 경우가 생기기 때문에 

반드시 프로젝트에 들어가기 앞서, utf8로 설정을 하는 것이 일반적인 경우입니다.

 

 

Character set ?

사용하는 언어를 표현하기 위한 문자들의 집합을 의미한글을 표현하기 위하여 사용하는 캐릭터 셋에는 여러가지가 존재 합니다.

Encoding ?

Character Set을 컴퓨터가 이해할 수 있는 바이트와 매핑해 주는 것입니다.



 

 

저같은 경우에는 전부 utf8로 변경을 시키고 프로젝트를 시작해야하기 때문에 설정을 바꿔줘야 필요가 있습니다.

프로젝트 할때마다 설정을 변경해야하는 수고가 있어 정리해 보았습니다.

요약하자면 mysql 폴더의 my.ini 파일을 변경한 다음 서비스를 재 시작하면 끝입니다.

참 쉽죠? 한번 따라해보세요!


우선 mysql 폴더로 들어가서 my.ini 파일을 엽니다.

 

그리고 아래 글을 복사하여 my.ini에 붙여넣기를 합니다.

 

 

[client]

default-character-set=utf8

 

[mysqld]

collation-server = utf8_unicode_ci

character-set-server = utf8

skip-character-set-client-handshake

 

 

[mysql]

default-character-set=utf8

 

그리고 서비스에 들어가 mysql 를 재 시작하면  아래와 같이 설정이 완료된 것을 볼 수 있습니다.

 

 

 

참고 사항

 

MySQL 5.5 부터는 default-character-set 옵션이 제거되었고 character-set-server 설정해 주면 됩니다.

skip-character-set-client-handshake 빠지면 client 시스템 encoding 사용하는데 윈도의 경우 euckr 설정 될수 있으므로 확인이 필요합니다.

 

 

반응형

댓글