2013년 12월 17일 화요일

[Python] MySQL 한글 입력시 깨지는 현상

MySQL 4.1.x 이상부터는 기본 저장을 UTF-8로 하는 점 때문에 생기는 현상입니다.
한글 character 옵션이 euc-kr에서 euckr로 바뀌었구요.
character가 euckr이나 Latin1이라면 접속후 set names euckr 쿼리를 하면 한글이 깨어지는 현상이 해결됩니다.

파이썬에서는,
db=mysql.connect(host="****", user="****", pass="****", db="****")
db.query("set character_set_connection=euckr;")
db.query("set character_set_server=euckr;")
db.query("set character_set_client=euckr;")
db.query("set character_set_results=euckr;")
db.query("set character_set_database=euckr;")
db.query("select * from test;");

또는 MySQL 설정 파일에 다음내용을 추가하면 해결됩니다.

[mysqld]
skip-character-set-client-handshake

댓글 없음:

댓글 쓰기