[gull] Python-mysqldb

Blaise Vogel blaise.vogel at bluewin.ch
Wed Nov 15 13:23:20 CET 2006


Bonjour la liste,

Je ne suis pas sur que ce sois un bug, donc avant de faire du bruit pour rien 
j'aimerais bien l'avis d'expert Python.

Pour info:
Debian Etch / python 2.4
En insérant des données avec python-mysqldb, j'ai l'erreur suivante:
...
File "/usr/lib/python2.4/site-packages/MySQLdb/cursors.py", line 146, in 
execute
    query = query.encode(charset)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe8 in position 2: 
ordinal not in range(128)
...
Et je trouve dans ce fichier à la ligne 146 le code suivant:
/usr/lib/python2.4/site-packages/MySQLdb/cursors.py    

query = query.encode(charset)

Mais selon ce que je sais, on doit suivre la régle suivante pour utliser 
encode/decode:

utf8 -> decode('utf8') -> unicode -> encode('latin1') -> latin1

Ma chaîne en entrée est en 'latin1'.
Pour le moment j'ai commenté cette ligne, mais j'avoue ne pas comprendre 
pourquoi ils ont ajouté ce .encode() à cet endroit, pour éviter une injection 
sql ?

Blaise Vogel



More information about the gull mailing list