Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
jean-michel bain-cornu
Bonsoir,
J'utilise MySQLdb sur un serveur mutualisé chez OVH. J'ai une erreur sur l'insertion ou la mise à jour d'un champ comportant un accent.
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 206: ordinal not in range(128) args = ('ascii', "INSERT INTO proprietaire ( id, civilite, nom, pr..., '', n '', '', '', '', 0 )", 206, 207, 'ordinal not in range(128)') encoding = 'ascii' end = 207 object = "INSERT INTO proprietaire ( id, civilite, nom, pr..., '', n '', '', '', '', 0 )" reason = 'ordinal not in range(128)' start = 206
L'erreur me semble bizarre, tu n'as pas de n° de ligne ni le nom du script qui plante ? Par ailleurs, si par hasard tu as la ligne query = query.encode(charset) dans ...MySQLdb/cursors.py aux alentours de la ligne 146, essaye de la mettre en commentaire, c'est une bêtise. Il faut avoir les droits d'écriture au répertoire Lib/site-packages de python. Et je sais, j'aurais dû le signaler au développeur, mais je n'ai pas eu le temps.
Bonsoir,
J'utilise MySQLdb sur un serveur mutualisé chez OVH.
J'ai une erreur sur l'insertion ou la mise à jour d'un champ comportant
un accent.
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position
206: ordinal not in range(128)
args = ('ascii', "INSERT INTO proprietaire ( id, civilite, nom,
pr..., '', n '', '', '', '', 0 )", 206, 207, 'ordinal not in range(128)')
encoding = 'ascii'
end = 207
object = "INSERT INTO proprietaire ( id, civilite, nom, pr..., '',
n '', '', '', '', 0 )"
reason = 'ordinal not in range(128)'
start = 206
L'erreur me semble bizarre, tu n'as pas de n° de ligne ni le nom du
script qui plante ?
Par ailleurs, si par hasard tu as la ligne
query = query.encode(charset)
dans ...MySQLdb/cursors.py aux alentours de la ligne 146, essaye de la
mettre en commentaire, c'est une bêtise. Il faut avoir les droits
d'écriture au répertoire Lib/site-packages de python.
Et je sais, j'aurais dû le signaler au développeur, mais je n'ai pas eu
le temps.
J'utilise MySQLdb sur un serveur mutualisé chez OVH. J'ai une erreur sur l'insertion ou la mise à jour d'un champ comportant un accent.
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 206: ordinal not in range(128) args = ('ascii', "INSERT INTO proprietaire ( id, civilite, nom, pr..., '', n '', '', '', '', 0 )", 206, 207, 'ordinal not in range(128)') encoding = 'ascii' end = 207 object = "INSERT INTO proprietaire ( id, civilite, nom, pr..., '', n '', '', '', '', 0 )" reason = 'ordinal not in range(128)' start = 206
L'erreur me semble bizarre, tu n'as pas de n° de ligne ni le nom du script qui plante ? Par ailleurs, si par hasard tu as la ligne query = query.encode(charset) dans ...MySQLdb/cursors.py aux alentours de la ligne 146, essaye de la mettre en commentaire, c'est une bêtise. Il faut avoir les droits d'écriture au répertoire Lib/site-packages de python. Et je sais, j'aurais dû le signaler au développeur, mais je n'ai pas eu le temps.
jean-michel bain-cornu
Par ailleurs, si par hasard tu as la ligne query = query.encode(charset) dans ...MySQLdb/cursors.py aux alentours de la ligne 146, essaye de la mettre en commentaire, c'est une bêtise. Il faut avoir les droits d'écriture au répertoire Lib/site-packages de python. Et je sais, j'aurais dû le signaler au développeur, mais je n'ai pas eu le temps.
Dans la version 1.2.2, il y a if isinstance(query, unicode): query = query.encode(charset) ce qui semble indiquer que l'erreur a été corrigée, ou au moins qu'une tentative a été faite. Il faudrait confirmer que ton erreur vient de cette partie là, et savoir quelle version de MySQLdb tu utilises.
A+ jm
Par ailleurs, si par hasard tu as la ligne
query = query.encode(charset)
dans ...MySQLdb/cursors.py aux alentours de la ligne 146, essaye de la
mettre en commentaire, c'est une bêtise. Il faut avoir les droits
d'écriture au répertoire Lib/site-packages de python.
Et je sais, j'aurais dû le signaler au développeur, mais je n'ai pas eu
le temps.
Dans la version 1.2.2, il y a
if isinstance(query, unicode):
query = query.encode(charset)
ce qui semble indiquer que l'erreur a été corrigée, ou au moins qu'une
tentative a été faite.
Il faudrait confirmer que ton erreur vient de cette partie là, et savoir
quelle version de MySQLdb tu utilises.
Par ailleurs, si par hasard tu as la ligne query = query.encode(charset) dans ...MySQLdb/cursors.py aux alentours de la ligne 146, essaye de la mettre en commentaire, c'est une bêtise. Il faut avoir les droits d'écriture au répertoire Lib/site-packages de python. Et je sais, j'aurais dû le signaler au développeur, mais je n'ai pas eu le temps.
Dans la version 1.2.2, il y a if isinstance(query, unicode): query = query.encode(charset) ce qui semble indiquer que l'erreur a été corrigée, ou au moins qu'une tentative a été faite. Il faudrait confirmer que ton erreur vient de cette partie là, et savoir quelle version de MySQLdb tu utilises.
A+ jm
ReM
Par ailleurs, si par hasard tu as la ligne query = query.encode(charset) dans ...MySQLdb/cursors.py aux alentours de la ligne 146, essaye de la mettre en commentaire, c'est une bêtise. Il faut avoir les droits d'écriture au répertoire Lib/site-packages de python. Et je sais, j'aurais dû le signaler au développeur, mais je n'ai pas eu le temps.
Dans la version 1.2.2, il y a if isinstance(query, unicode): query = query.encode(charset) ce qui semble indiquer que l'erreur a été corrigée, ou au moins qu'une tentative a été faite. Il faudrait confirmer que ton erreur vient de cette partie là, et savoir quelle version de MySQLdb tu utilises.
A+ jm
J'utilise la version 1.2.1_p2 de chez OVH, je suis en mutualisé !
Plus de détails sur l'erreur : /usr/lib/python2.4/site-packages/MySQLdb/cursors.py in execute(self=<MySQLdb.cursors.Cursor object>, query="UPDATE proprietaire n SET civil...'ma', notaire_id = 1n WHERE id = 1", args=None) 144 db = self._get_db() 145 charset = db.character_set_name() 146 query = query.encode(charset) 147 if args is not None: 148 query = query % db.literal(args) query = "UPDATE proprietaire n SET civil...'ma', notaire_id = 1n WHERE id = 1", query.encode = <built-in method encode of str object>, charset = 'latin1'
J'essaie d'inserer le mot Rémi dans un champ de type VARCHAR
Merci ;o)
ReM
Par ailleurs, si par hasard tu as la ligne
query = query.encode(charset)
dans ...MySQLdb/cursors.py aux alentours de la ligne 146, essaye de la
mettre en commentaire, c'est une bêtise. Il faut avoir les droits
d'écriture au répertoire Lib/site-packages de python.
Et je sais, j'aurais dû le signaler au développeur, mais je n'ai pas
eu le temps.
Dans la version 1.2.2, il y a
if isinstance(query, unicode):
query = query.encode(charset)
ce qui semble indiquer que l'erreur a été corrigée, ou au moins qu'une
tentative a été faite.
Il faudrait confirmer que ton erreur vient de cette partie là, et savoir
quelle version de MySQLdb tu utilises.
A+
jm
J'utilise la version 1.2.1_p2 de chez OVH, je suis en mutualisé !
Plus de détails sur l'erreur :
/usr/lib/python2.4/site-packages/MySQLdb/cursors.py in
execute(self=<MySQLdb.cursors.Cursor object>, query="UPDATE proprietaire
n SET civil...'ma', notaire_id = 1n WHERE id = 1", args=None)
144 db = self._get_db()
145 charset = db.character_set_name()
146 query = query.encode(charset)
147 if args is not None:
148 query = query % db.literal(args)
query = "UPDATE proprietaire n SET civil...'ma', notaire_id = 1n WHERE
id = 1", query.encode = <built-in method encode of str object>, charset
= 'latin1'
J'essaie d'inserer le mot Rémi dans un champ de type VARCHAR
Par ailleurs, si par hasard tu as la ligne query = query.encode(charset) dans ...MySQLdb/cursors.py aux alentours de la ligne 146, essaye de la mettre en commentaire, c'est une bêtise. Il faut avoir les droits d'écriture au répertoire Lib/site-packages de python. Et je sais, j'aurais dû le signaler au développeur, mais je n'ai pas eu le temps.
Dans la version 1.2.2, il y a if isinstance(query, unicode): query = query.encode(charset) ce qui semble indiquer que l'erreur a été corrigée, ou au moins qu'une tentative a été faite. Il faudrait confirmer que ton erreur vient de cette partie là, et savoir quelle version de MySQLdb tu utilises.
A+ jm
J'utilise la version 1.2.1_p2 de chez OVH, je suis en mutualisé !
Plus de détails sur l'erreur : /usr/lib/python2.4/site-packages/MySQLdb/cursors.py in execute(self=<MySQLdb.cursors.Cursor object>, query="UPDATE proprietaire n SET civil...'ma', notaire_id = 1n WHERE id = 1", args=None) 144 db = self._get_db() 145 charset = db.character_set_name() 146 query = query.encode(charset) 147 if args is not None: 148 query = query % db.literal(args) query = "UPDATE proprietaire n SET civil...'ma', notaire_id = 1n WHERE id = 1", query.encode = <built-in method encode of str object>, charset = 'latin1'
J'essaie d'inserer le mot Rémi dans un champ de type VARCHAR
Merci ;o)
ReM
jean-michel bain-cornu
J'utilise la version 1.2.1_p2 de chez OVH, je suis en mutualisé !
Plus de détails sur l'erreur : /usr/lib/python2.4/site-packages/MySQLdb/cursors.py in execute(self=<MySQLdb.cursors.Cursor object>, query="UPDATE proprietaire n SET civil...'ma', notaire_id = 1n WHERE id = 1", args=None) 144 db = self._get_db() 145 charset = db.character_set_name() 146 query = query.encode(charset) 147 if args is not None: 148 query = query % db.literal(args) query = "UPDATE proprietaire n SET civil...'ma', notaire_id = 1n WHERE id = 1", query.encode = <built-in method encode of str object>, charset = 'latin1'
Ce ressemble bien au bug que j'avais identifié (ligne 146). Tu peux essayer de passer un unicode à la place d'un string : ex : sqlTxt = unicode('insert..."Rémi"...etc..','iso-8859-1') instruction_sql(sqlTxt) Le iso-8859-1 colle bien si tu es sous windows. Si tu es sous linux, ce serait plutôt utf-8, tout dépend du charset dans lequel le programme a été saisi. Tu peux aussi installer la dernière version de MySQLdb dans ton espace perso ; tout dépend de la quantité de modifs que tu devras faire dans ton code pour passer des unicodes au lieu des strings. Si tu en as beaucoup, ça vaut le coup d'essayer d'installer cette dernière version.
Quand tu auras passé un unicode, la ligne 146 retransformera cet unicode en string dans un charset qui sera supposé plaire à MySQL, et ça devrait fonctionner. L'idée de tout ça est de gérer automatiquement la translation du charset du programme vers le charset de la base. L'idéal serait de commenter la ligne 146 qui ne sert à rien si tu n'as qu'un jeux de caractères à gérer.
Tout ça n'a visiblement pas trop bien été testé au départ par notre bon Andy Dustman, qui a probablement autre chose à faire que de se préoccuper des caractères accentués et autres étrangetés étrangères...
Bon courage, jm
J'utilise la version 1.2.1_p2 de chez OVH, je suis en mutualisé !
Plus de détails sur l'erreur :
/usr/lib/python2.4/site-packages/MySQLdb/cursors.py in
execute(self=<MySQLdb.cursors.Cursor object>, query="UPDATE proprietaire
n SET civil...'ma', notaire_id = 1n WHERE id = 1", args=None)
144 db = self._get_db()
145 charset = db.character_set_name()
146 query = query.encode(charset)
147 if args is not None:
148 query = query % db.literal(args)
query = "UPDATE proprietaire n SET civil...'ma', notaire_id = 1n WHERE
id = 1", query.encode = <built-in method encode of str object>, charset
= 'latin1'
Ce ressemble bien au bug que j'avais identifié (ligne 146).
Tu peux essayer de passer un unicode à la place d'un string :
ex : sqlTxt = unicode('insert..."Rémi"...etc..','iso-8859-1')
instruction_sql(sqlTxt)
Le iso-8859-1 colle bien si tu es sous windows. Si tu es sous linux, ce
serait plutôt utf-8, tout dépend du charset dans lequel le programme a
été saisi.
Tu peux aussi installer la dernière version de MySQLdb dans ton espace
perso ; tout dépend de la quantité de modifs que tu devras faire dans
ton code pour passer des unicodes au lieu des strings. Si tu en as
beaucoup, ça vaut le coup d'essayer d'installer cette dernière version.
Quand tu auras passé un unicode, la ligne 146 retransformera cet unicode
en string dans un charset qui sera supposé plaire à MySQL, et ça devrait
fonctionner. L'idée de tout ça est de gérer automatiquement la
translation du charset du programme vers le charset de la base. L'idéal
serait de commenter la ligne 146 qui ne sert à rien si tu n'as qu'un
jeux de caractères à gérer.
Tout ça n'a visiblement pas trop bien été testé au départ par notre bon
Andy Dustman, qui a probablement autre chose à faire que de se
préoccuper des caractères accentués et autres étrangetés étrangères...
J'utilise la version 1.2.1_p2 de chez OVH, je suis en mutualisé !
Plus de détails sur l'erreur : /usr/lib/python2.4/site-packages/MySQLdb/cursors.py in execute(self=<MySQLdb.cursors.Cursor object>, query="UPDATE proprietaire n SET civil...'ma', notaire_id = 1n WHERE id = 1", args=None) 144 db = self._get_db() 145 charset = db.character_set_name() 146 query = query.encode(charset) 147 if args is not None: 148 query = query % db.literal(args) query = "UPDATE proprietaire n SET civil...'ma', notaire_id = 1n WHERE id = 1", query.encode = <built-in method encode of str object>, charset = 'latin1'
Ce ressemble bien au bug que j'avais identifié (ligne 146). Tu peux essayer de passer un unicode à la place d'un string : ex : sqlTxt = unicode('insert..."Rémi"...etc..','iso-8859-1') instruction_sql(sqlTxt) Le iso-8859-1 colle bien si tu es sous windows. Si tu es sous linux, ce serait plutôt utf-8, tout dépend du charset dans lequel le programme a été saisi. Tu peux aussi installer la dernière version de MySQLdb dans ton espace perso ; tout dépend de la quantité de modifs que tu devras faire dans ton code pour passer des unicodes au lieu des strings. Si tu en as beaucoup, ça vaut le coup d'essayer d'installer cette dernière version.
Quand tu auras passé un unicode, la ligne 146 retransformera cet unicode en string dans un charset qui sera supposé plaire à MySQL, et ça devrait fonctionner. L'idée de tout ça est de gérer automatiquement la translation du charset du programme vers le charset de la base. L'idéal serait de commenter la ligne 146 qui ne sert à rien si tu n'as qu'un jeux de caractères à gérer.
Tout ça n'a visiblement pas trop bien été testé au départ par notre bon Andy Dustman, qui a probablement autre chose à faire que de se préoccuper des caractères accentués et autres étrangetés étrangères...
Bon courage, jm
ReM
J'utilise la version 1.2.1_p2 de chez OVH, je suis en mutualisé !
Plus de détails sur l'erreur : /usr/lib/python2.4/site-packages/MySQLdb/cursors.py in execute(self=<MySQLdb.cursors.Cursor object>, query="UPDATE proprietaire n SET civil...'ma', notaire_id = 1n WHERE id = 1", args=None) 144 db = self._get_db() 145 charset = db.character_set_name() 146 query = query.encode(charset) 147 if args is not None: 148 query = query % db.literal(args) query = "UPDATE proprietaire n SET civil...'ma', notaire_id = 1n WHERE id = 1", query.encode = <built-in method encode of str object>, charset = 'latin1'
Ce ressemble bien au bug que j'avais identifié (ligne 146). Tu peux essayer de passer un unicode à la place d'un string : ex : sqlTxt = unicode('insert..."Rémi"...etc..','iso-8859-1') instruction_sql(sqlTxt) Le iso-8859-1 colle bien si tu es sous windows. Si tu es sous linux, ce serait plutôt utf-8, tout dépend du charset dans lequel le programme a été saisi. (...)
ça marche avec ça !!!! Super et moindre modif pour moi Merci beaucoup !!!
J'utilise la version 1.2.1_p2 de chez OVH, je suis en mutualisé !
Plus de détails sur l'erreur :
/usr/lib/python2.4/site-packages/MySQLdb/cursors.py in
execute(self=<MySQLdb.cursors.Cursor object>, query="UPDATE
proprietaire n SET civil...'ma', notaire_id = 1n WHERE id = 1",
args=None)
144 db = self._get_db()
145 charset = db.character_set_name()
146 query = query.encode(charset)
147 if args is not None:
148 query = query % db.literal(args)
query = "UPDATE proprietaire n SET civil...'ma', notaire_id = 1n
WHERE id = 1", query.encode = <built-in method encode of str object>,
charset = 'latin1'
Ce ressemble bien au bug que j'avais identifié (ligne 146).
Tu peux essayer de passer un unicode à la place d'un string :
ex : sqlTxt = unicode('insert..."Rémi"...etc..','iso-8859-1')
instruction_sql(sqlTxt)
Le iso-8859-1 colle bien si tu es sous windows. Si tu es sous linux, ce
serait plutôt utf-8, tout dépend du charset dans lequel le programme a
été saisi. (...)
ça marche avec ça !!!!
Super et moindre modif pour moi
Merci beaucoup !!!
J'utilise la version 1.2.1_p2 de chez OVH, je suis en mutualisé !
Plus de détails sur l'erreur : /usr/lib/python2.4/site-packages/MySQLdb/cursors.py in execute(self=<MySQLdb.cursors.Cursor object>, query="UPDATE proprietaire n SET civil...'ma', notaire_id = 1n WHERE id = 1", args=None) 144 db = self._get_db() 145 charset = db.character_set_name() 146 query = query.encode(charset) 147 if args is not None: 148 query = query % db.literal(args) query = "UPDATE proprietaire n SET civil...'ma', notaire_id = 1n WHERE id = 1", query.encode = <built-in method encode of str object>, charset = 'latin1'
Ce ressemble bien au bug que j'avais identifié (ligne 146). Tu peux essayer de passer un unicode à la place d'un string : ex : sqlTxt = unicode('insert..."Rémi"...etc..','iso-8859-1') instruction_sql(sqlTxt) Le iso-8859-1 colle bien si tu es sous windows. Si tu es sous linux, ce serait plutôt utf-8, tout dépend du charset dans lequel le programme a été saisi. (...)
ça marche avec ça !!!! Super et moindre modif pour moi Merci beaucoup !!!
jean-michel bain-cornu
Merci beaucoup !!!
Vraiment pas de quoi, pour une fois que c'est moi qui donne un truc dans ce forum...
Merci beaucoup !!!
Vraiment pas de quoi, pour une fois que c'est moi qui donne un truc dans
ce forum...
Vraiment pas de quoi, pour une fois que c'est moi qui donne un truc dans ce forum...
scorplex
jean-michel bain-cornu a écrit le 29/09/2007 à 09h49 :
Merci beaucoup !!!
Vraiment pas de quoi, pour une fois que c'est moi qui donne un truc dans ce forum...
en un mot MERCIIIIIIII !!!!!!!
Je lutte là dessus depuis des jours, j'avais plein de soucis dans mon python de cet ordre (print de chaine avec des accents etc) que j'ai corrigé sans trop de difficulté mais je récupère une chaine dans une base pour aller la recopier dans une autre et dés que je voulais faire une requête insert, paf meme message d'erreur
Je tourne en rond depsui des jours et j'ai jamais été remettre en cause python lui même et sans toi je ne l'aurai jamais fait !!
Merci merci merci, Je sais que je déterre un peu un vieux post mais vu le temps que j'ai passé sur cette M_*ù$?!! je me suis inscrit juste pour te dire merci !!!!
jean-michel bain-cornu a écrit le 29/09/2007 à 09h49 :
Merci beaucoup !!!
Vraiment pas de quoi, pour une fois que c'est moi qui donne un truc dans
ce forum...
en un mot MERCIIIIIIII !!!!!!!
Je lutte là dessus depuis des jours, j'avais plein de soucis dans mon python de cet ordre (print de chaine avec des accents etc) que j'ai corrigé sans trop de difficulté mais je récupère une chaine dans une base pour aller la recopier dans une autre et dés que je voulais faire une requête insert, paf meme message d'erreur
Je tourne en rond depsui des jours et j'ai jamais été remettre en cause python lui même et sans toi je ne l'aurai jamais fait !!
Merci merci merci,
Je sais que je déterre un peu un vieux post mais vu le temps que j'ai passé sur cette M_*ù$?!! je me suis inscrit juste pour te dire merci !!!!
jean-michel bain-cornu a écrit le 29/09/2007 à 09h49 :
Merci beaucoup !!!
Vraiment pas de quoi, pour une fois que c'est moi qui donne un truc dans ce forum...
en un mot MERCIIIIIIII !!!!!!!
Je lutte là dessus depuis des jours, j'avais plein de soucis dans mon python de cet ordre (print de chaine avec des accents etc) que j'ai corrigé sans trop de difficulté mais je récupère une chaine dans une base pour aller la recopier dans une autre et dés que je voulais faire une requête insert, paf meme message d'erreur
Je tourne en rond depsui des jours et j'ai jamais été remettre en cause python lui même et sans toi je ne l'aurai jamais fait !!
Merci merci merci, Je sais que je déterre un peu un vieux post mais vu le temps que j'ai passé sur cette M_*ù$?!! je me suis inscrit juste pour te dire merci !!!!