|
|
|
|
Configuration: Windows XP Internet Explorer 6.0
Tu utilises quoi comme tookit graphique ?
tkinter ? wxWidgets ? GTK ? autre ? Sinon, un article intéressant à lire: http://sebsauvage.net/python/charsets_et_encoding.html |
J'utilise Tkinter.
@--ToDeSfAlL--@ |
Peux-tu faire un copier-coller du message d'erreur ? |
Oui :
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 8: ordinal not in range(128) @--ToDeSfAlL--@ |
complet, avec les lignes de code et la pile d'appel, tel qu'à l'écran, s'il-te-plaît. |
Exception in Tkinter callback
Traceback (most recent call last): File "C:\prog\Python25\lib\lib-tk\Tkinter.py", line 1403, in __call__ return self.func(*args) File "D:\Data\Base_xml_python\dossier_machine.py", line 2912, in nouveau_Dossier liste_equipement() File "D:\Data\Base_xml_python\dossier_machine.py", line 222, in liste_equipement fd.write('<des>Désignation produit : <produit>%s</produit></des>\n' % desProduit) UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 6: ordinal not in range(128) @--ToDeSfAlL--@ |
|
fd.write('<des>Désignation produit : <produit>%s</produit></des>\n' % desProduit)
Ah ! Voilà le problème. En quel encodage est ton fichier ? ISO-8859-1 (jeu de caractère Windows), UTF-8, autre ? Il faut impérativement encoder les chaînes. Et tu devrais mettre toutes tes chaines en Unicode. Ce qui donne: machaine = u'<des>Désignation produit : <produit>%s</produit></des>\n' % desProduit
fd.write(machaine.encode('utf-8')
Si les mots encodage et jeu de caractère ne te parlent pas, il est impératif de lire ceci: http://sebsauvage.net/python/charsets_et_encoding.html C'est la source de tes problèmes. |
en # -*- coding: iso-8859-1 -*-
on ne pas mettre quelque chose comme si dessus pour qu'il prenne les accents. @--ToDeSfAlL--@ |
# -*- coding: iso-8859-1 -*-
sert seulement à indiquer l'encodage de ton source. Il faut indiquer à Python quel est l'encodage: - des fichiers que tu lis - des fichiers que tu écris (Python ne peut pas le deviner, et par défaut il considèrera que c'est de l'ascii. Il refusera donc d'écrire "é" dedans, car "é" ne fait pas partie du code ascii, d'où l'erreur 'ascii' codec can't decode byte 0xe9...) La règle c'est : - toujours indiquer l'encodage du source .py (ce que tu as fait, c'est bien) - toujours travailler en interne dans ton programme avec des chaînes unicode (u"bébé" au lieu de "bébé") - quand on échange avec le monde extérieur (fichiers, réseau...) il faut encoder/décoder vers/depuis les bons charsets (ascii, iso-8859-1, utf-8...) |
merci
@--ToDeSfAlL--@ |
De rien ! |
| 05/05 16h31 | Utiliser des accents et autres caractères spéciaux | Programmation |
| 28/10 10h35 | Google - Minuscules, majuscules, accents, pluriels | |
| 21/12 00h16 | [Python] Lire et écrire des fichiers CSV | Python |
| 16/11 22h56 | Votre première application graphique avec Python et Glade | Programmation |
| 20/11 18h02 | Supprimer les accents avec PHP | PHP |
| 01/06 16h28 | [Python] accents avec wxPython - utf8 ? | 6 |
| 30/05 13h06 | [python] limiter un entry | 7 |
| 04/06 11h36 | [python] configuration entry et label | 0 |
| 14/01 13h54 | [python] récupérer des valeurs or d'Entry | 13 |
![]() | PSPad - PSPad est un excellent éditeur de texte. Il est utile pour travailler sur du simple texte, mais aussi sur du HTML, CSS,... | Catégorie: Développement Licence: Freeware/gratuit |
![]() | Notepad++ - Notepad++ est un editeur de code source qui supporte plusieurs langages. Il s'agit d'un logiciel libre performant et... | Catégorie: Développement Licence: Open Source |
![]() | Bank Perfect - BankPerfect est un programme de gestion bancaire totalement gratuit destiné aux particuliers soucieux de tenir leurs... | Catégorie: Budget Licence: Freeware/gratuit |
![]() | CDCheck - Récupérez vos fichiers endommagèes d'un cd ou DVD grâce à CDCheck... CDCheck est l'utilité de la prévention, de détection... | Catégorie: Gestion de fichiers Licence: Shareware |
![]() | Dell Optiplex Entry Level | Catégorie: Clavier | 17.99 € Dell FR |
![]() | Arisetec Accent HT400B Desktop | Catégorie: Boîtier PC | |
![]() | Siemens optiPoint 500 entry | Catégorie: Téléphone fixe | |
![]() | Arisetec Accent HT200B Desktop | Catégorie: Boîtier PC |