Comment échapper les caractères dans le balisage Pango?
Question
Mon programme a une gtk.TreeView
qui affiche une gtk.ListStore
. Le gtk.ListStore
contient des chaînes comme ceci:
"<span size='medium'><b>"+site_title+"</b></span>"+"\n"+URL
Où URL
est (évidemment) une chaîne d'URL. Parfois il y a des personnages URL
qui causent Pango à ne pas analyser le balisage.
Y at-il un moyen d'échapper URL
dans son ensemble afin que pango va simplement l'ignorer il sera affiché littéralement? Sinon, comment dois-je « échapper » caractères spéciaux dans les URL?
La solution
Vous devez échapper aux valeurs. Je ne suis pas sûr de ce format exact Pango exige, mais il semble que le HTML et le la fonction de cgi.escape peut être tout ce dont vous avez besoin.
import cgi
print "<span size='medium'><b>%s</b></span>\n%s" %
(cgi.escape(site_title), cgi.escape(URL))
Autres conseils
glib.markup_escape_text
peut-être une approche plus canonique en utilisant GTK.