[Python] 파이썬 MySQL사용시 UnicodeEncodeError 해결 방법
들어가며
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())
'Python > Python 프로그래밍' 카테고리의 다른 글
[Python] BeautifulSoup UTF-8 설정 (Encoding, 한글 깨짐 현상) (0) | 2021.04.27 |
---|---|
[Python] Web 스크랩 및 파싱 :: BeautifulSoup 사용방법 (0) | 2021.04.27 |
[Python] Dictionary key기준, value 기준으로 정렬하기 (0) | 2021.04.27 |
[Python] 소수점 반올림, 자리수 (0) | 2021.04.27 |
[Python] 파이썬 인코딩 문제 SyntaxError: Non-ASCII character (0) | 2021.04.27 |
[Python] Join, Split 리스트를 문자열로, 문자열을 리스트로 변환 (0) | 2021.04.27 |
[Python] MySQL 설치 및 쿼리 (접속/SELECT/INSERT/DELETE/UPDATE) (0) | 2021.04.27 |
[Python] 유니코드, UTF-8를 해결하는 방법 (Unicode, UTF8) (0) | 2021.04.27 |