Escapando texto en Pango
Actualizado el 2008-09-19 04:38:07.099357
Hace mucho tiempo que encontré cierto error en gdesklets el cual es demasiado molesto, en el log aparece algo como:
TargetLabel.py:173: PangoWarning: pango_layout_set_markup_with_accel...
Al discutirlo me di cuenta que esto por ahora es "normal" porque en conclusión en la lista de correo la respuesta ancestral es que el programador es encargado de tener este cuidado y escapar los caracteres "extraños". En mi opinión, el mismo framework debiera hacer eso o al menos tener un atributo que dijera escape="False" que cambiara el valor por defecto. Por ejemplo, si estás ejecutando un lector de noticias RSS, tu de antemano no sabes que caracteres son los que tendrá que procesar tu aplicación y si falla, como resultado tendrás una pantalla (o sector) en blanco.
Insisto, esto debiera ir dentro del framework. Si mi estimado lector está pasando por este problema, la solución es la siguiente: hay una función de glib que se llama g_markup_escape_text(), obviamente en Python no es necesario el módulo glib como lo es en C por lo que algunas características fueron portadas al módulo gobject, entre ellas, esta dicha función. Por lo que en gdesklets es necesario crear un Control, importarla y devolver el string con los caracteres escapados:
>>> from gobject import markup_escape_text
>>> print markup_escape_text(" < > & ' ")
& lt; & gt; & amp; & apos;
Comentarios.
(Agregar uno nuevo)