Bonjour,
J'ai un petit souci de formatage :
(note : seance.djour est une datetime et égale à 9 février 2015)
Fonctionne bien : pas d'accent sur - Seance - et février apparait bien avec l'accent
Code : Sélectionner tout - Visualiser dans une fenêtre à part lib_sea = "Seance de {0} h programmee le {1:%A %d %B %Y}".format(seance.duree, seance.djour)
J'ajoute les accents ...
la sortie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part lib_sea = "Séance de {0} h programmée le {1:%A %d %B %Y}".format(seance.duree, seance.djour)Même si ce n'est pas beau la sortie me parait cohérente ...Séance de 3.0 h programmée le lundi 09 février 2015
J'ajoute le préfixe u"" pour transformer la chaine en unicode :
Là j'ai une exception UnicodeDecodeError avec datetime : 9 février 2015 (avec donc un accent). Par contre, avec une autre date sans accent, l'affichage est correct.
Code : Sélectionner tout - Visualiser dans une fenêtre à part lib_sea = u"Séance de {0} h programmée le {1:%A %d %B %Y}".format(seance.duree, seance.djour)
Grrrrr !
La solution (provisoire) que j'ai trouvé est :
Mais je perds la souplesse de la syntaxe de str.format() ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 import locale import time locale.setlocale(locale.LC_TIME,'') pref_enc = locale.getpreferredencoding() lib_sea = u"Séance de {0} h programmée le ".format(seance.duree) + seance.djour.strftime('%A %d %B %Y').decode(pref_enc)
Question, existe t-il un moyen de contourner le phénomène et d'utiliser, quand même,avec une chaine principale en unicode et un résultat du formatage des paramètres avec des accents (donc en unicode)
Code : Sélectionner tout - Visualiser dans une fenêtre à part str.format()
Merci d'avance pour vos pistes.
@+
Partager