J'ai rencontré ce même problème lors de l'utilisation du module Python MySQLdb. Étant donné que MySQL vous permet de stocker à peu près toutes les données binaires que vous souhaitez dans un champ de texte, quel que soit le jeu de caractères, j'ai trouvé ma solution ici :
Utiliser UTF8 avec Python MySQLdb
Edit :Citez l'URL ci-dessus pour satisfaire la demande dans le premier commentaire...
"UnicodeEncodeError :le codec 'latin-1' ne peut pas encoder le caractère..."
En effet, MySQLdb essaie normalement de tout coder en latin-1. Cela peut être résolu en exécutant les commandes suivantes juste après avoir établi la connexion :
db.set_character_set('utf8')
dbc.execute('SET NAMES utf8;')
dbc.execute('SET CHARACTER SET utf8;')
dbc.execute('SET character_set_connection=utf8;')
"db" est le résultat de
MySQLdb.connect()
, et "dbc" est le résultat dedb.cursor()
.