2009-11-19 16 views
9

Il mio programma ha uno gtk.TreeView che visualizza uno gtk.ListStore. Il gtk.ListStore contiene stringhe in questo modo:Come sfuggire ai caratteri nel markup Pango?

"<span size='medium'><b>"+site_title+"</b></span>"+"\n"+URL 

Dove URL è (ovviamente) una stringa URL. A volte ci sono caratteri in URL che fanno sì che pango non riesca ad analizzare il markup.

C'è un modo per sfuggire a URL nel suo complesso in modo che il pango lo ignorerà e verrà visualizzato letteralmente? In caso contrario, come dovrei "scappare" caratteri speciali negli URL?

risposta

2

È necessario evitare i valori. Non sono sicuro di quale sia il formato esatto di Pango, ma sembra HTML e la funzione cgi.escape potrebbe essere tutto ciò che serve.

import cgi 
print "<span size='medium'><b>%s</b></span>\n%s" % 
     (cgi.escape(site_title), cgi.escape(URL)) 
17

glib.markup_escape_text può essere un approccio più canonica quando si utilizza GTK.

+1

Nell'ultima versione di PyGTK sembra essere [gobject.markup_escape_text] (http://www.pygtk.org/pygtk2reference/gobject-functions.html#function-gobject--markup-escape-text) –

Problemi correlati