Попаднах на същия проблем, когато използвах Python MySQLdb модула. Тъй като MySQL ще ви позволи да съхранявате почти всички двоични данни, които искате, в текстово поле, независимо от набора от знаци, намерих моето решение тук:
Използване на UTF8 с Python MySQLdb
Редактиране:Цитирайте от горния URL адрес, за да удовлетворите заявката в първия коментар...
"UnicodeEncodeError:'latin-1' codec не може да кодира символ ..."
Това е така, защото MySQLdb обикновено се опитва да кодира всичко в latin-1. Това може да бъде коригирано чрез изпълнение на следните команди веднага след като сте установили връзката:
db.set_character_set('utf8')
dbc.execute('SET NAMES utf8;')
dbc.execute('SET CHARACTER SET utf8;')
dbc.execute('SET character_set_connection=utf8;')
"db" е резултат от
MySQLdb.connect()
, а "dbc" е резултат отdb.cursor()
.