Bonjour,
J'ai un petit souci de formatage :
(note : seance.djour est une datetime et égale à 9 février 2015)

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)
Fonctionne bien : pas d'accent sur - Seance - et février apparait bien avec l'accent

J'ajoute les accents ...
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)
la sortie :
Séance de 3.0 h programmée le lundi 09 février 2015
Même si ce n'est pas beau la sortie me parait cohérente ...

J'ajoute le préfixe u"" pour transformer la chaine en unicode :
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)
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.
Grrrrr !

La solution (provisoire) que j'ai trouvé est :
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)
Mais je perds la souplesse de la syntaxe de str.format() ...

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)
Merci d'avance pour vos pistes.
@+