본문 바로가기
데이터베이스/MySQL

[php, mysql] utf-8 관련

by 언제나초심. 2013. 10. 1.
반응형

PHP 에서 utf-8 로 하는 것은 

 1. 소스 파일을 utf-8 로 저장

 2. 헤더에서 utf-8 선언. header(블라블라)

 3. html 에서 utf-8선언 <meta 블라블라>



이정도면 대충 된다.

문제는 mysql 이다. 




1. 내부의 디비생성시 utf-8 로 해줘야 한다. 나중에 바꾸는 건 모르겠음. (아마도 alter database DB명 default character set utf8; 으로 추측)

2. 테이블 및 컬럼들을 utf-8 로 해준다.

3. SHOW VARIABLES LIKE 'character_set%'; 쿼리를 날려본다. 




[잘동작되는 예]

character_set_client utf8

character_set_connection utf8

character_set_database utf8

character_set_filesystem binary

character_set_results utf8

character_set_server latin1

character_set_system utf8

character_sets_dir /usr/share/mysql/charsets/


현재 내 서버는 이렇게 되어 있다. 
이정도로도 원활히 되는 듯 보인다. 
latin1 이 있으면 바꿔줘야 한다. 
character_set_server 이것도 바꿔주는게 나을 듯. ㅠ

[잘안되는 예]
character_set_database latin1




이것말고도 원인은 많겠지만. 하나하나 잡아가면 잘 잡힌다. 




--메모

mysql> use DB명                                          <= 변경할 DB를 선택후 변경
mysql> set character_set_client=utf8;
mysql> set character_set_results=utf8;
mysql> set character_set_connection=utf8;
mysql> set character_set_server=utf8;
mysql> alter database DB명 default character set utf8;
mysql> commit;




반응형