Ecrire dans un fichier des caractères accentués

Caud -  
nidhogg-59 Messages postés 102 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour

dans le code suivant j'écris dans un fichier texte 2 chaines de caractères, l'une avec des voyelles accentuées l'autre sans.

Quand on ouvre le fichier on obtient:

! caractere accentue !
! caractère accentué !

Bien que le même format ait été utilisé, les deux chaines n'ont pas la même longueur.

D'où vient mon erreur

Merci



# -*-coding:utf-8 -*-

import os

mystr = "caractere accentue"
mystr_ac = "caractère accentué"

form_cel_str20='! %20s'

f = open('tst.txt', "w")

f.write( form_cel_str20 % mystr + ' !'+ '\n')
f.write( form_cel_str20 % mystr_ac + ' !' +'\n')
f.close()
A voir également:

3 réponses

Utilisateur anonyme
 
Bonjour,

Ça fait très (très) longtemps que je n'ai pas touché au python, mais ne serait-ce pas un problème d'encodage?

Cdt,
Orinym.
0
Caud
 
Non puisque j'ai bien mis en codage en début de mon fichier.

ce qui n'apparait pas dans la copie de l'exemple c'est que quand j'imprime le fichier généré la deuxième ligne avec les caractères est plus courte que la première!
0
nidhogg-59 Messages postés 102 Date d'inscription   Statut Membre Dernière intervention   28
 
Je dirais que c'est parce que les caractères accentués sont codés sur deux caractères (leur position est supérieur à 128 dans la table ascii). Mais je ne suis pas tout à fait sur que c'est à cause de ça.
essaie de faire ça:
print "%20s"%"testé".decode("utf-8")
ça devrait aller mieux!
0