반응형
들어가며
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())
반응형
'Programming > Python' 카테고리의 다른 글
[Python] Dictionary key기준, value 기준으로 정렬하기 (2) | 2016.04.19 |
---|---|
[Python] 소수점 반올림, 자리수 (1) | 2016.04.19 |
[Python] 파이썬 인코딩 문제 SyntaxError: Non-ASCII character (0) | 2016.03.26 |
[Python] Join, Split 리스트를 문자열로, 문자열을 리스트로 변환 (1) | 2016.03.23 |
[Python] MySQL 설치 및 쿼리 (접속/SELECT/INSERT/DELETE/UPDATE) (0) | 2016.03.23 |