J'essaie d'obtenir Mako rendre une chaîne de caractères unicode:Python/Mako: Comment obtenir des chaînes/caractères Unicode correctement analysés?
tempLook=TemplateLookup(..., default_filters=[], input_encoding='utf8',output_encoding='utf-8', encoding_errors='replace')
...
print sys.stdout.encoding
uname=cherrypy.session['userName']
print uname
kwargs['_toshow']=uname
...
return tempLook.get_template(page).render(**kwargs)
Le fichier modèle connexe:
...${_toshow}...
Et la sortie est:
UTF-8
Deşghfkskhü
...
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc5 in position 1: ordinal not in range(128)
Je ne Je pense qu'il y a un problème avec la chaîne elle-même puisque je peux l'imprimer très bien.
Bien que j'ai joué (beaucoup) avec les paramètres input/output_encoding
et default_filters
, il se plaint toujours d'être incapable de décoder/encoder avec le codec ascii.
J'ai donc décidé d'essayer l'exemple trouvé sur le documentation, et ce qui suit fonctionne le "meilleur":
input_encoding='utf-8', output_encoding='utf-8'
#(note : it still raised an error without output_encoding, despite tutorial not implying it)
Avec
${u"voix m’a réveillé."}
Et le résultat étant
voix mâ�a réveillé
Je ne comprends tout simplement pas pourquoi cela ne fonctionne pas. "Les commentaires d'encodage magiques ne fonctionnent pas non plus. Tous les fichiers sont encodés avec UTF-8.
J'ai passé des heures sans succès, ai-je oublié quelque chose?
Mise à jour:
J'ai maintenant question plus simple:
Maintenant que toutes les variables sont unicode, comment puis-je Mako pour rendre les chaînes unicode sans appliquer quoi que ce soit? Passer un filtre vide/render_unicode() n'aide pas.
Merci beaucoup pour la clarification. – felace