如何转义 Pango 标记中的字符?

发布于 2024-08-12 10:16:58 字数 390 浏览 8 评论 0原文

我的程序有一个 gtk.TreeView,它显示一个 gtk.ListStoregtk.ListStore 包含如下字符串:

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

其中 URL 是(显然)一个 URL 字符串。有时,URL 中的某些字符会导致 pango 无法解析标记。

有没有办法将 URL 整体转义,以便 pango 忽略它,从而按字面显示?如果不是,我应该如何“转义”网址中的特殊字符?

My program has a gtk.TreeView which displays a gtk.ListStore. The gtk.ListStore contains strings like this:

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

Where URL is (obviously) a URL string. Sometimes there are characters in URL that cause pango to fail to parse the markup.

Is there a way to escape URL as a whole so that pango will just ignore it so it will be displayed literally? If not, how should I "escape" special characters in URLs?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

允世 2024-08-19 10:16:58

glib.markup_escape_text可能是更规范的方法。

glib.markup_escape_text may be a more canonical approach when using GTK.

音盲 2024-08-19 10:16:58

您需要转义这些值。我不确定 Pango 需要什么确切格式,但它看起来像 HTML 和 cgi.escape 函数可能就是您所需要的。

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

You need to escape the values. I'm not sure what exact format Pango requires, but it looks like HTML and the cgi.escape function may be all you need.

import cgi
print "<span size='medium'><b>%s</b></span>\n%s" %
      (cgi.escape(site_title), cgi.escape(URL))
赠我空喜 2024-08-19 10:16:58

//编辑队列已满,因此请在此处发布

来自 PyGObject

demo

>>> from gi.repository import GLib
>>> GLib.markup_escape_text('abc \b \f < & >')
'abc   < & >'
>>> 

py api 文档的 GLib.markup_escape_text
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

//edit queue is full, so post here

GLib.markup_escape_text from PyGObject

demo

>>> from gi.repository import GLib
>>> GLib.markup_escape_text('abc \b \f < & >')
'abc   < & >'
>>> 

py api docs
https://lazka.github.io/pgi-docs/#GLib-2.0/functions.html#GLib.markup_escape_text
https://pygobject.readthedocs.io

c api docs
https://docs.gtk.org/glib/func.markup_escape_text.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文