Bonjour, et mes excuses si ce sujet a été abordé mille fois, mais je m' enlise C'est effectivement un pb qu'on rencontre souvent, et qui n'est pas
toujours marrant à résoudre.
Comment stocker et afficher des caratères accentués français dans une base sqlite .
Après un test j'ai le message d'erreur suivant
pysqlite2.dbapi2.OperationsError: Could not decode to UTF-8 column Serait-il possible d'avoir le message complet, avec la ligne de ton code
qui provoque l'erreur, et le contenu de la chaîne incriminée ? Le contexte d'exécution est important aussi (les versions et tout le tintouin)
A+ jm
Mickaël Delahaye
pysqlite2.dbapi2.OperationsError: Could not decode to UTF-8 column
D'après la doc de pysql , il y a moyen de forcer à unicode (par **tex t_factory** ) mais où mettre cette option ?
Je précise que mon code débute par: # _*_ coding:iso-8859-1 _*_
Cela indique quel encodage est utilisé pour les chaînes Unicode (par exemple u"éveillé" ) de Python pour les chaînes simples (eg "n'importe quoi").
PySqlite a besoin de chaîne Unicode (le type TEXT par défaut est en Unicode), il essaye donc de convertir ta chaîne simple en Unicode : unicode("étienne") --> erreur En effet, Python pense qu'une chaîne simple est en ASCII (sans accents)... ce qui lève une exception plus ou moins bien retranscris par PySqlite.
Comme ton code débute par # coding:iso-8859-1, tu dois juste rajouté un u devant les chaînes que tu fournis à PySqlite.
Cordialement,
Mickaël Delahaye
pysqlite2.dbapi2.OperationsError: Could not decode to UTF-8 column
D'après la doc de pysql , il y a moyen de forcer à unicode (par **tex t_factory** ) mais où mettre cette option ?
Je précise que mon code débute par: # _*_ coding:iso-8859-1 _*_
Cela indique quel encodage est utilisé pour les chaînes Unicode (par
exemple u"éveillé" ) de Python pour les chaînes simples (eg
"n'importe
quoi").
PySqlite a besoin de chaîne Unicode (le type TEXT par défaut est en
Unicode), il essaye donc de convertir ta chaîne simple en Unicode :
unicode("étienne") --> erreur
En effet, Python pense qu'une chaîne simple est en ASCII (sans
accents)... ce qui lève une exception plus ou moins bien retranscris
par PySqlite.
Comme ton code débute par # coding:iso-8859-1, tu dois juste rajouté
un
u devant les chaînes que tu fournis à PySqlite.
pysqlite2.dbapi2.OperationsError: Could not decode to UTF-8 column
D'après la doc de pysql , il y a moyen de forcer à unicode (par **tex t_factory** ) mais où mettre cette option ?
Je précise que mon code débute par: # _*_ coding:iso-8859-1 _*_
Cela indique quel encodage est utilisé pour les chaînes Unicode (par exemple u"éveillé" ) de Python pour les chaînes simples (eg "n'importe quoi").
PySqlite a besoin de chaîne Unicode (le type TEXT par défaut est en Unicode), il essaye donc de convertir ta chaîne simple en Unicode : unicode("étienne") --> erreur En effet, Python pense qu'une chaîne simple est en ASCII (sans accents)... ce qui lève une exception plus ou moins bien retranscris par PySqlite.
Comme ton code débute par # coding:iso-8859-1, tu dois juste rajouté un u devant les chaînes que tu fournis à PySqlite.
Cordialement,
Mickaël Delahaye
Yves Lange
pysqlite2.dbapi2.OperationsError: Could not decode to UTF-8 column
D'après la doc de pysql , il y a moyen de forcer à unicode (par **text_factory** ) mais où mettre cette option ?
Je précise que mon code débute par: # _*_ coding:iso-8859-1 _*_
Cela indique quel encodage est utilisé pour les chaînes Unicode (par exemple u"éveillé" ) de Python pour les chaînes simples (eg "n'importe quoi").
PySqlite a besoin de chaîne Unicode (le type TEXT par défaut est en Unicode), il essaye donc de convertir ta chaîne simple en Unicode : unicode("étienne") --> erreur En effet, Python pense qu'une chaîne simple est en ASCII (sans accents)... ce qui lève une exception plus ou moins bien retranscris par PySqlite.
Comme ton code débute par # coding:iso-8859-1, tu dois juste rajouté un u devant les chaînes que tu fournis à PySqlite.
Cordialement,
Mickaël Delahaye
Exemple:
a = u"hello"
++
pysqlite2.dbapi2.OperationsError: Could not decode to UTF-8 column
D'après la doc de pysql , il y a moyen de forcer à unicode (par **text_factory** ) mais où mettre cette option ?
Je précise que mon code débute par: # _*_ coding:iso-8859-1 _*_
Cela indique quel encodage est utilisé pour les chaînes Unicode (par
exemple u"éveillé" ) de Python pour les chaînes simples (eg
"n'importe
quoi").
PySqlite a besoin de chaîne Unicode (le type TEXT par défaut est en
Unicode), il essaye donc de convertir ta chaîne simple en Unicode :
unicode("étienne") --> erreur
En effet, Python pense qu'une chaîne simple est en ASCII (sans
accents)... ce qui lève une exception plus ou moins bien retranscris
par PySqlite.
Comme ton code débute par # coding:iso-8859-1, tu dois juste rajouté
un
u devant les chaînes que tu fournis à PySqlite.
pysqlite2.dbapi2.OperationsError: Could not decode to UTF-8 column
D'après la doc de pysql , il y a moyen de forcer à unicode (par **text_factory** ) mais où mettre cette option ?
Je précise que mon code débute par: # _*_ coding:iso-8859-1 _*_
Cela indique quel encodage est utilisé pour les chaînes Unicode (par exemple u"éveillé" ) de Python pour les chaînes simples (eg "n'importe quoi").
PySqlite a besoin de chaîne Unicode (le type TEXT par défaut est en Unicode), il essaye donc de convertir ta chaîne simple en Unicode : unicode("étienne") --> erreur En effet, Python pense qu'une chaîne simple est en ASCII (sans accents)... ce qui lève une exception plus ou moins bien retranscris par PySqlite.
Comme ton code débute par # coding:iso-8859-1, tu dois juste rajouté un u devant les chaînes que tu fournis à PySqlite.