J'utilise le module StringIO
f=3DStringIO()
si la premi=E8re cha=EEne que j'=E9cris par f.write() comporte un accent =
c'est ok.
Si j'=E9cris en premier une cha=EEne sans accent par f.write() et lors d'=
un=20
f.write suivant j'ai une erreur (unicde error etc ..) si j'ai un accent=20
dans la cha=EEne.
Comment peut on forcer StrinGIO =E0 fonctionner en latin-1 et pas en asci=
i ?
Question annexe la m=E9thode get du widget Text de Tkinter retourne quel =
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
Mickaël Delahaye
Bonjour, Bon je sèche ...
J'utilise le module StringIO f=StringIO() si la première chaîne que j'écris par f.write() comporte un accent c'est ok. Si j'écris en premier une chaîne sans accent par f.write() et lors d' un f.write suivant j'ai une erreur (unicde error etc ..) si j'ai un accent dans la chaîne.
Comment peut on forcer StrinGIO à fonctionner en latin-1 et pas en asci i ?
Question annexe la méthode get du widget Text de Tkinter retourne quel encodage ?
Encore un problème de codage...
StringIO ignore totalement l'encodage... Tu peux toujours faire
s = StringIO() s.write('sans accent') s.write('ou avec éèàù')
Là les chaines envoyés sont des chaines normales... mais si tu lui envoie des chaînes Unicode (c'est à dire un autre type d'objet!!) il va tenter une conversion, et par défaut c'est de l'Ascii : # coding: iso-8859-1 au début du fichier s.write(u"éé") --> UnicodeEncodeError: 'ascii' codec can't encode u'xe9' etc..
Une solution possible encoder toit même la chaine Unicode en latin1 par exemple s.write(u"éé".encode('latin1'))
Cordialement, Mickaël Delahaye
Bonjour,
Bon je sèche ...
J'utilise le module StringIO
f=StringIO()
si la première chaîne que j'écris par f.write() comporte un accent c'est ok.
Si j'écris en premier une chaîne sans accent par f.write() et lors d' un
f.write suivant j'ai une erreur (unicde error etc ..) si j'ai un accent
dans la chaîne.
Comment peut on forcer StrinGIO à fonctionner en latin-1 et pas en asci i ?
Question annexe la méthode get du widget Text de Tkinter retourne quel
encodage ?
Encore un problème de codage...
StringIO ignore totalement l'encodage... Tu peux toujours faire
s = StringIO()
s.write('sans accent')
s.write('ou avec éèàù')
Là les chaines envoyés sont des chaines normales... mais si tu lui
envoie des chaînes Unicode (c'est à dire un autre type d'objet!!) il
va tenter une conversion, et par défaut c'est de l'Ascii :
# coding: iso-8859-1 au début du fichier
s.write(u"éé")
--> UnicodeEncodeError: 'ascii' codec can't encode u'xe9' etc..
Une solution possible encoder toit même la chaine Unicode en latin1
par exemple
s.write(u"éé".encode('latin1'))
J'utilise le module StringIO f=StringIO() si la première chaîne que j'écris par f.write() comporte un accent c'est ok. Si j'écris en premier une chaîne sans accent par f.write() et lors d' un f.write suivant j'ai une erreur (unicde error etc ..) si j'ai un accent dans la chaîne.
Comment peut on forcer StrinGIO à fonctionner en latin-1 et pas en asci i ?
Question annexe la méthode get du widget Text de Tkinter retourne quel encodage ?
Encore un problème de codage...
StringIO ignore totalement l'encodage... Tu peux toujours faire
s = StringIO() s.write('sans accent') s.write('ou avec éèàù')
Là les chaines envoyés sont des chaines normales... mais si tu lui envoie des chaînes Unicode (c'est à dire un autre type d'objet!!) il va tenter une conversion, et par défaut c'est de l'Ascii : # coding: iso-8859-1 au début du fichier s.write(u"éé") --> UnicodeEncodeError: 'ascii' codec can't encode u'xe9' etc..
Une solution possible encoder toit même la chaine Unicode en latin1 par exemple s.write(u"éé".encode('latin1'))
Cordialement, Mickaël Delahaye
Laurent Pointal
Mickaël Delahaye wrote:
Bonjour, Bon je sèche ...
J'utilise le module StringIO f=StringIO() si la première chaîne que j'écris par f.write() comporte un accent c'est ok. Si j'écris en premier une chaîne sans accent par f.write() et lors d'un f.write suivant j'ai une erreur (unicde error etc ..) si j'ai un accent dans la chaîne.
Comment peut on forcer StrinGIO à fonctionner en latin-1 et pas en ascii ?
Question annexe la méthode get du widget Text de Tkinter retourne quel encodage ?
Encore un problème de codage...
StringIO ignore totalement l'encodage... Tu peux toujours faire
s = StringIO() s.write('sans accent') s.write('ou avec éèàù')
Là les chaines envoyés sont des chaines normales... mais si tu lui envoie des chaînes Unicode (c'est à dire un autre type d'objet!!) il va tenter une conversion, et par défaut c'est de l'Ascii : # coding: iso-8859-1 au début du fichier s.write(u"éé") --> UnicodeEncodeError: 'ascii' codec can't encode u'xe9' etc..
Une solution possible encoder toit même la chaine Unicode en latin1 par exemple s.write(u"éé".encode('latin1'))
Il y a une classe wrapper spécifique codecs.EncodedFile pour rendre ça transparent, (noter aussi, dans le même module, une fonction open pour rendre transparent l'encodage d'un vrai fichier - mais là elle ne s'applique pas vu que l'on ne manipule pas un vrai fichier).
A+
Laurent.
Mickaël Delahaye wrote:
Bonjour,
Bon je sèche ...
J'utilise le module StringIO
f=StringIO()
si la première chaîne que j'écris par f.write() comporte un accent c'est
ok. Si j'écris en premier une chaîne sans accent par f.write() et lors
d'un f.write suivant j'ai une erreur (unicde error etc ..) si j'ai un
accent dans la chaîne.
Comment peut on forcer StrinGIO à fonctionner en latin-1 et pas en ascii
?
Question annexe la méthode get du widget Text de Tkinter retourne quel
encodage ?
Encore un problème de codage...
StringIO ignore totalement l'encodage... Tu peux toujours faire
s = StringIO()
s.write('sans accent')
s.write('ou avec éèàù')
Là les chaines envoyés sont des chaines normales... mais si tu lui
envoie des chaînes Unicode (c'est à dire un autre type d'objet!!) il
va tenter une conversion, et par défaut c'est de l'Ascii :
# coding: iso-8859-1 au début du fichier
s.write(u"éé")
--> UnicodeEncodeError: 'ascii' codec can't encode u'xe9' etc..
Une solution possible encoder toit même la chaine Unicode en latin1
par exemple
s.write(u"éé".encode('latin1'))
Il y a une classe wrapper spécifique codecs.EncodedFile pour rendre ça
transparent, (noter aussi, dans le même module, une fonction open pour
rendre transparent l'encodage d'un vrai fichier - mais là elle ne
s'applique pas vu que l'on ne manipule pas un vrai fichier).
J'utilise le module StringIO f=StringIO() si la première chaîne que j'écris par f.write() comporte un accent c'est ok. Si j'écris en premier une chaîne sans accent par f.write() et lors d'un f.write suivant j'ai une erreur (unicde error etc ..) si j'ai un accent dans la chaîne.
Comment peut on forcer StrinGIO à fonctionner en latin-1 et pas en ascii ?
Question annexe la méthode get du widget Text de Tkinter retourne quel encodage ?
Encore un problème de codage...
StringIO ignore totalement l'encodage... Tu peux toujours faire
s = StringIO() s.write('sans accent') s.write('ou avec éèàù')
Là les chaines envoyés sont des chaines normales... mais si tu lui envoie des chaînes Unicode (c'est à dire un autre type d'objet!!) il va tenter une conversion, et par défaut c'est de l'Ascii : # coding: iso-8859-1 au début du fichier s.write(u"éé") --> UnicodeEncodeError: 'ascii' codec can't encode u'xe9' etc..
Une solution possible encoder toit même la chaine Unicode en latin1 par exemple s.write(u"éé".encode('latin1'))
Il y a une classe wrapper spécifique codecs.EncodedFile pour rendre ça transparent, (noter aussi, dans le même module, une fonction open pour rendre transparent l'encodage d'un vrai fichier - mais là elle ne s'applique pas vu que l'on ne manipule pas un vrai fichier).
A+
Laurent.
Bertrand B
Bonjour, Bon je sèche ...
J'utilise le module StringIO f=StringIO() si la première chaîne que j'écris par f.write() comporte un acce nt c'est ok. Si j'écris en premier une chaîne sans accent par f.write() et lors d'un f.write suivant j'ai une erreur (unicde error etc ..) si j'ai un accen t dans la chaîne.
Comment peut on forcer StrinGIO à fonctionner en latin-1 et pas en a scii ?
Question annexe la méthode get du widget Text de Tkinter retourne qu el encodage ?
Encore un problème de codage...
StringIO ignore totalement l'encodage... Tu peux toujours faire
s = StringIO() s.write('sans accent') s.write('ou avec éèàù')
Là les chaines envoyés sont des chaines normales... mais si tu lui envoie des chaînes Unicode (c'est à dire un autre type d'objet!!) i l va tenter une conversion, et par défaut c'est de l'Ascii : # coding: iso-8859-1 au début du fichier s.write(u"éé") --> UnicodeEncodeError: 'ascii' codec can't encode u'xe9' etc..
Une solution possible encoder toit même la chaine Unicode en latin1 par exemple s.write(u"éé".encode('latin1'))
Cordialement, Mickaël Delahaye
Si je vous lit bien le message :
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 34: ordinal not in range(128) M'indique donc que le widget Text de tkinter retourne de l'unicode ...
Je viens de tester et effectivement l'ajout de .encode('latin1') à chaque chaîne renvoyée par tkinter a solutionné le problème
Thx !
Bonjour,
Bon je sèche ...
J'utilise le module StringIO
f=StringIO()
si la première chaîne que j'écris par f.write() comporte un acce nt c'est ok.
Si j'écris en premier une chaîne sans accent par f.write() et lors d'un
f.write suivant j'ai une erreur (unicde error etc ..) si j'ai un accen t
dans la chaîne.
Comment peut on forcer StrinGIO à fonctionner en latin-1 et pas en a scii ?
Question annexe la méthode get du widget Text de Tkinter retourne qu el
encodage ?
Encore un problème de codage...
StringIO ignore totalement l'encodage... Tu peux toujours faire
s = StringIO()
s.write('sans accent')
s.write('ou avec éèàù')
Là les chaines envoyés sont des chaines normales... mais si tu lui
envoie des chaînes Unicode (c'est à dire un autre type d'objet!!) i l
va tenter une conversion, et par défaut c'est de l'Ascii :
# coding: iso-8859-1 au début du fichier
s.write(u"éé")
--> UnicodeEncodeError: 'ascii' codec can't encode u'xe9' etc..
Une solution possible encoder toit même la chaine Unicode en latin1
par exemple
s.write(u"éé".encode('latin1'))
Cordialement,
Mickaël Delahaye
Si je vous lit bien le message :
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 34:
ordinal not in range(128)
M'indique donc que le widget Text de tkinter retourne de l'unicode ...
Je viens de tester et effectivement l'ajout de .encode('latin1') à
chaque chaîne renvoyée par tkinter a solutionné le problème
J'utilise le module StringIO f=StringIO() si la première chaîne que j'écris par f.write() comporte un acce nt c'est ok. Si j'écris en premier une chaîne sans accent par f.write() et lors d'un f.write suivant j'ai une erreur (unicde error etc ..) si j'ai un accen t dans la chaîne.
Comment peut on forcer StrinGIO à fonctionner en latin-1 et pas en a scii ?
Question annexe la méthode get du widget Text de Tkinter retourne qu el encodage ?
Encore un problème de codage...
StringIO ignore totalement l'encodage... Tu peux toujours faire
s = StringIO() s.write('sans accent') s.write('ou avec éèàù')
Là les chaines envoyés sont des chaines normales... mais si tu lui envoie des chaînes Unicode (c'est à dire un autre type d'objet!!) i l va tenter une conversion, et par défaut c'est de l'Ascii : # coding: iso-8859-1 au début du fichier s.write(u"éé") --> UnicodeEncodeError: 'ascii' codec can't encode u'xe9' etc..
Une solution possible encoder toit même la chaine Unicode en latin1 par exemple s.write(u"éé".encode('latin1'))
Cordialement, Mickaël Delahaye
Si je vous lit bien le message :
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 34: ordinal not in range(128) M'indique donc que le widget Text de tkinter retourne de l'unicode ...
Je viens de tester et effectivement l'ajout de .encode('latin1') à chaque chaîne renvoyée par tkinter a solutionné le problème