Dans l'exemple suivant :
*************************************
#_*_ coding:utf-8 _*_
from Tkinter import *
def test():
global t1
doc=open('ptj_test.txt', 'w')
doc.write(t1.get(0.1, END))
doc.close()
print t1.get(0.1, END)
rac=Tk()
t1 = Text(rac, height=3, width=20)
t1.pack()
Button(rac, text='Test', command=test).pack()
rac.mainloop()
*********************************
si je tape un teste sans accents dans la zone de texte, pas de problème
mais si je met des accents, le print se fait sans problème mais il
refuse d'écrite dans le document et me crache :
Exception in Tkinter callback
Traceback (most recent call last):
File
"/usr/src/build/394694-i386/install/usr/lib/python2.3/lib-tk/Tkinter.py",
line 1345, in __call__
return self.func(*args)
File "test.py", line 8, in test
doc.write(t1.get(0.1, END))
UnicodeEncodeError: 'ascii' codec can't encode characters in position
0-2: ordinal not in range(128)
Rien a faire, je comprend pas d'où ça vient.
Quelqu'un aurait-il une idée du pourquoi du problème ?
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
Yermat
Jonathan Barnoud wrote:
Bonjour,
Dans l'exemple suivant : ************************************* #_*_ coding:utf-8 _*_
from Tkinter import * def test(): global t1 doc=open('ptj_test.txt', 'w') doc.write(t1.get(0.1, END)) doc.close() print t1.get(0.1, END) rac=Tk() t1 = Text(rac, height=3, width ) t1.pack() Button(rac, text='Test', command=test).pack() rac.mainloop() ********************************* si je tape un teste sans accents dans la zone de texte, pas de problème mais si je met des accents, le print se fait sans problème mais il refuse d'écrite dans le document et me crache :
Exception in Tkinter callback Traceback (most recent call last): File "/usr/src/build/394694-i386/install/usr/lib/python2.3/lib-tk/Tkinter.py", line 1345, in __call__ return self.func(*args) File "test.py", line 8, in test doc.write(t1.get(0.1, END)) UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)
Rien a faire, je comprend pas d'où ça vient. Quelqu'un aurait-il une idée du pourquoi du problème ?
Jonathan Barnoud
Les joies de l'unicode... Vous essayer d'écrire une chaine unicode dans un fichier ascii donc forcément ça passe pas ! Il faut donc soit que vous transformiez vous même la ligne comme dans : Button(rac, text='Test é'.encode('utf-8'), command=test).pack()
ou alors mieux : import codecs doc=codecs.open('ptj_test.txt', 'w', 'utf-8')
-- Cordialement, Yermat
Jonathan Barnoud wrote:
Bonjour,
Dans l'exemple suivant :
*************************************
#_*_ coding:utf-8 _*_
from Tkinter import *
def test():
global t1
doc=open('ptj_test.txt', 'w')
doc.write(t1.get(0.1, END))
doc.close()
print t1.get(0.1, END)
rac=Tk()
t1 = Text(rac, height=3, width )
t1.pack()
Button(rac, text='Test', command=test).pack()
rac.mainloop()
*********************************
si je tape un teste sans accents dans la zone de texte, pas de problème
mais si je met des accents, le print se fait sans problème mais il
refuse d'écrite dans le document et me crache :
Exception in Tkinter callback
Traceback (most recent call last):
File
"/usr/src/build/394694-i386/install/usr/lib/python2.3/lib-tk/Tkinter.py",
line 1345, in __call__
return self.func(*args)
File "test.py", line 8, in test
doc.write(t1.get(0.1, END))
UnicodeEncodeError: 'ascii' codec can't encode characters in position
0-2: ordinal not in range(128)
Rien a faire, je comprend pas d'où ça vient.
Quelqu'un aurait-il une idée du pourquoi du problème ?
Jonathan Barnoud
Les joies de l'unicode...
Vous essayer d'écrire une chaine unicode dans un fichier ascii donc
forcément ça passe pas ! Il faut donc soit que vous transformiez vous
même la ligne comme dans :
Button(rac, text='Test é'.encode('utf-8'), command=test).pack()
ou alors mieux :
import codecs
doc=codecs.open('ptj_test.txt', 'w', 'utf-8')
Dans l'exemple suivant : ************************************* #_*_ coding:utf-8 _*_
from Tkinter import * def test(): global t1 doc=open('ptj_test.txt', 'w') doc.write(t1.get(0.1, END)) doc.close() print t1.get(0.1, END) rac=Tk() t1 = Text(rac, height=3, width ) t1.pack() Button(rac, text='Test', command=test).pack() rac.mainloop() ********************************* si je tape un teste sans accents dans la zone de texte, pas de problème mais si je met des accents, le print se fait sans problème mais il refuse d'écrite dans le document et me crache :
Exception in Tkinter callback Traceback (most recent call last): File "/usr/src/build/394694-i386/install/usr/lib/python2.3/lib-tk/Tkinter.py", line 1345, in __call__ return self.func(*args) File "test.py", line 8, in test doc.write(t1.get(0.1, END)) UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)
Rien a faire, je comprend pas d'où ça vient. Quelqu'un aurait-il une idée du pourquoi du problème ?
Jonathan Barnoud
Les joies de l'unicode... Vous essayer d'écrire une chaine unicode dans un fichier ascii donc forcément ça passe pas ! Il faut donc soit que vous transformiez vous même la ligne comme dans : Button(rac, text='Test é'.encode('utf-8'), command=test).pack()
ou alors mieux : import codecs doc=codecs.open('ptj_test.txt', 'w', 'utf-8')
-- Cordialement, Yermat
Jerome Fuselier
Jonathan Barnoud wrote:
Bonjour,
Dans l'exemple suivant : ************************************* #_*_ coding:utf-8 _*_
from Tkinter import * def test(): global t1 doc=open('ptj_test.txt', 'w') doc.write(t1.get(0.1, END)) doc.close() print t1.get(0.1, END) rac=Tk() t1 = Text(rac, height=3, width ) t1.pack() Button(rac, text='Test', command=test).pack() rac.mainloop() ********************************* si je tape un teste sans accents dans la zone de texte, pas de problème mais si je met des accents, le print se fait sans problème mais il refuse d'écrite dans le document et me crache :
Exception in Tkinter callback Traceback (most recent call last): File "/usr/src/build/394694-i386/install/usr/lib/python2.3/lib-tk/Tkinter.py", line 1345, in __call__ return self.func(*args) File "test.py", line 8, in test doc.write(t1.get(0.1, END)) UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)
Rien a faire, je comprend pas d'où ça vient. Quelqu'un aurait-il une idée du pourquoi du problème ?
Dans l'exemple suivant :
*************************************
#_*_ coding:utf-8 _*_
from Tkinter import *
def test():
global t1
doc=open('ptj_test.txt', 'w')
doc.write(t1.get(0.1, END))
doc.close()
print t1.get(0.1, END)
rac=Tk()
t1 = Text(rac, height=3, width )
t1.pack()
Button(rac, text='Test', command=test).pack()
rac.mainloop()
*********************************
si je tape un teste sans accents dans la zone de texte, pas de problème
mais si je met des accents, le print se fait sans problème mais il
refuse d'écrite dans le document et me crache :
Exception in Tkinter callback
Traceback (most recent call last):
File
"/usr/src/build/394694-i386/install/usr/lib/python2.3/lib-tk/Tkinter.py",
line 1345, in __call__
return self.func(*args)
File "test.py", line 8, in test
doc.write(t1.get(0.1, END))
UnicodeEncodeError: 'ascii' codec can't encode characters in position
0-2: ordinal not in range(128)
Rien a faire, je comprend pas d'où ça vient.
Quelqu'un aurait-il une idée du pourquoi du problème ?
Dans l'exemple suivant : ************************************* #_*_ coding:utf-8 _*_
from Tkinter import * def test(): global t1 doc=open('ptj_test.txt', 'w') doc.write(t1.get(0.1, END)) doc.close() print t1.get(0.1, END) rac=Tk() t1 = Text(rac, height=3, width ) t1.pack() Button(rac, text='Test', command=test).pack() rac.mainloop() ********************************* si je tape un teste sans accents dans la zone de texte, pas de problème mais si je met des accents, le print se fait sans problème mais il refuse d'écrite dans le document et me crache :
Exception in Tkinter callback Traceback (most recent call last): File "/usr/src/build/394694-i386/install/usr/lib/python2.3/lib-tk/Tkinter.py", line 1345, in __call__ return self.func(*args) File "test.py", line 8, in test doc.write(t1.get(0.1, END)) UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)
Rien a faire, je comprend pas d'où ça vient. Quelqu'un aurait-il une idée du pourquoi du problème ?