如何在Pango标记中转义字符?
我的程序有一个 gtk.TreeView
,它用来显示一个 gtk.ListStore
。这个 gtk.ListStore
里面包含了一些字符串,像这样:
"<span size='medium'><b>"+site_title+"</b></span>"+"\n"+URL
其中 URL
显然是一个网址字符串。有时候,URL
中会有一些字符,让 pango 无法正确解析这些内容。
有没有办法把整个 URL
处理一下,让 pango 忽略它,这样就可以原样显示了?如果没有,那我该怎么处理 URL
中的特殊字符呢?
3 个回答
0
//编辑队列已满,所以在这里发布
GLib.markup_escape_text
来自 PyGObject
示例
>>> from gi.repository import GLib
>>> GLib.markup_escape_text('abc \b \f < & >')
'abc   < & >'
>>>
Python API 文档
https://lazka.github.io/pgi-docs/#GLib-2.0/functions.html#GLib.markup_escape_text
https://pygobject.readthedocs.io
C API 文档
https://docs.gtk.org/glib/func.markup_escape_text.html
22
glib.markup_escape_text
可能是使用 GTK 时更标准的方法。
2
你需要对这些值进行转义。我不太确定Pango具体需要什么格式,但看起来像是HTML格式,而cgi.escape这个函数可能正是你所需要的。
import cgi
print "<span size='medium'><b>%s</b></span>\n%s" %
(cgi.escape(site_title), cgi.escape(URL))