Programming/Python
[Python] 파이썬 MySQL사용시 UnicodeEncodeError 해결 방법
쌍쌍바나나
2016. 3. 31. 13:45
반응형
들어가며
Python과MySQL을 사용해본 사람 중에 Encoding문제를 한번도 겪지 않았다면, 이 글을 읽을 필요가 없습니다. 하지만 이 두개는 쌍으로 encoding문제로 괴롭히는 주범이라고 할 수 있지요. 각각의 설정에 대해서 설명하겠습니다.
MySQL
MySQL에서는 테이블 생성시에 설정을 해주면 됩니다. 테이블의 기본 character 를 utf8로 설정하시면 됩니다. 또는 각 string값이 들어가는 varchar와 같은 변수옆에 character set 'utf8'을 하나씩 해주셔도 됩니다.
create table `test`.`test` ( `text` varchar(50) character set 'utf8' ) default character set =utf8
Python
MySQLdb의 connection에 utf8을 세팅하고, query 스트링을 utf8로 encoding 하면된다.
# MySQLdb.connect()의 connection에 utf8을 세팅합니다. con.query("set character_set_connection=utf8;") con.query("set character_set_server=utf8;") con.query("set character_set_client=utf8;") con.query("set character_set_results=utf8;") con.query("set character_set_database=utf8;") # 쿼리를 실행할시에 query string을 'utf8'로 encode cur.execute(query.encode('utf8'), row.values())
반응형