كيف تفلت من الشخصيات في بانغو ترميز؟
سؤال
برنامجي لديه gtk.TreeView
الذي يعرض أ gtk.ListStore
. ال gtk.ListStore
يحتوي على سلاسل مثل هذا:
"<span size='medium'><b>"+site_title+"</b></span>"+"\n"+URL
أين URL
هو (من الواضح) سلسلة عنوان URL. في بعض الأحيان هناك شخصيات في URL
التي تجعل بانغو فشل في تحليل الترميز.
هل هناك طريقة للهروب URL
ككل بحيث يتجاهلها بانغو حتى يتم عرضها حرفيًا؟ إذا لم يكن كذلك ، كيف يجب أن "الهروب" من شخصيات خاصة في عناوين URL؟
المحلول
تحتاج إلى الهروب من القيم. لست متأكدًا من التنسيق الدقيق الذي يتطلبه Pango ، لكنه يبدو مثل HTML و CGI.ESCAPE قد تكون الوظيفة كل ما تحتاجه.
import cgi
print "<span size='medium'><b>%s</b></span>\n%s" %
(cgi.escape(site_title), cgi.escape(URL))
نصائح أخرى
glib.markup_escape_text
قد يكون نهجا أكثر قانونيا عند استخدام GTK.
لا تنتمي إلى StackOverflow