Ik kwam hetzelfde probleem tegen bij het gebruik van de Python MySQLdb-module. Omdat je met MySQL zowat alle binaire gegevens die je wilt in een tekstveld kunt opslaan, ongeacht de tekenset, heb ik hier mijn oplossing gevonden:
UTF8 gebruiken met Python MySQLdb
Bewerken:citeer uit de bovenstaande URL om te voldoen aan het verzoek in de eerste opmerking...
"UnicodeEncodeError:'latin-1' codec kan geen teken coderen ..."
Dit komt omdat MySQLdb normaal gesproken alles probeert te coderen naar latin-1. Dit kan worden opgelost door de volgende opdrachten uit te voeren direct nadat u de verbinding tot stand hebt gebracht:
db.set_character_set('utf8')
dbc.execute('SET NAMES utf8;')
dbc.execute('SET CHARACTER SET utf8;')
dbc.execute('SET character_set_connection=utf8;')
"db" is het resultaat van
MySQLdb.connect()
, en "dbc" is het resultaat vandb.cursor()
.