파이썬에서 mysqldb 라이브러리를 사용하여 쿼리 실행 시 아래와 같이 인코딩 에러가 발생한다. 


Traceback (most recent call last):

  File "write.py", line 46, in <module>

    write_mujidog(title, "2")

  File "write.py", line 29, in write_mujidog

    cur.execute(sql)

  File "/usr/lib64/python2.7/site-packages/MySQLdb/cursors.py", line 157, in execute

    query = query.encode(charset)

UnicodeEncodeError: 'latin-1' codec can't encode characters in position 559-561: ordinal not in range(256)


해결 방법은 매우 간단하다.


인코딩 타입이 맞지 않는경우이기 때문에 execute 함수 실행 전 간단하게 쿼리문을 utf8로 인코딩해주면 된다. 


cur.execute(sql.encode('utf8'))

다른 카테고리의 글 목록

Python 카테고리의 포스트를 톺아봅니다