Как экранировать символы в разметке Pango?
Вопрос
В моей программе есть gtk.TreeView
который отображает gtk.ListStore
.Тот Самый gtk.ListStore
содержит строки, подобные этой:
"<span size='medium'><b>"+site_title+"</b></span>"+"\n"+URL
Где URL
является (очевидно) строкой URL.Иногда в нем присутствуют персонажи URL
это приводит к тому, что pango не удается проанализировать разметку.
Есть ли способ сбежать URL
в целом, так что pango просто проигнорирует это, чтобы оно отображалось буквально?Если нет, то как я должен "экранировать" специальные символы в URL-адресах?
Решение
Вам нужно экранировать значения.Я не уверен, какой именно формат требуется Pango, но он выглядит как HTML и cgi.побег функция может быть всем, что вам нужно.
import cgi
print "<span size='medium'><b>%s</b></span>\n%s" %
(cgi.escape(site_title), cgi.escape(URL))
Другие советы
glib.markup_escape_text
может быть, это более канонический подход при использовании GTK.