Jag stötte på samma problem när jag använde Python MySQLdb-modulen. Eftersom MySQL låter dig lagra nästan vilken binär data du vill ha i ett textfält oavsett teckenuppsättning, hittade jag min lösning här:
Använda UTF8 med Python MySQLdb
Redigera:Citera från ovanstående URL för att tillfredsställa begäran i den första kommentaren...
"UnicodeEncodeError:'latin-1' codec kan inte koda tecken ..."
Detta beror på att MySQLdb normalt försöker koda allt till latin-1. Detta kan åtgärdas genom att köra följande kommandon direkt efter att du har upprättat anslutningen:
db.set_character_set('utf8')
dbc.execute('SET NAMES utf8;')
dbc.execute('SET CHARACTER SET utf8;')
dbc.execute('SET character_set_connection=utf8;')
"db" är resultatet av
MySQLdb.connect()
, och "dbc" är resultatet avdb.cursor()
.