[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