在我的一个项目中,我使用cgi.escape()
来逃避从资源中获取的一组标题。这些标题可能来自Youtube或其他任何地方,可能需要转义。
我遇到的问题是,如果标题已经从Youtube转义并将其传递到cgi.escape()
,我最终会获得双重转义的标题,这会搞乱我项目的后续部分
是否有一个库可以转义字符串,但检查一个片段是否已经被转义,并忽略它?
答案 0 :(得分:1)
webhelpers2.html.builder.literal表示“HTML文字字符串,不会进一步转义”。它有一个转义HTML的转义方法,并返回一个文字,一个文字实例可以转换成一个带有'.join(literal_instance)的字符串
例如使用Python 2.7.10:
来自webhelpers2.html.builder import literal
e1 = literal.escape('& < >')
e1
Out[3]: literal(u'& < >')
e2 = literal.escape(e1)
e2
Out[5]: literal(u'& < >')
s = ''.join(e1)
s
Out[7]: u'& < >'
使用Python 3.4.3:
from webhelpers2.html.builder import literal
e1 = literal.escape('& < >')
e1
literal('& < >')
e2 = literal.escape(e1)
e2
Out[5]: literal('& < >')
s = ''.join(e1)
s
Out[7]: '& < >'
答案 1 :(得分:0)
如果您知道您的输入已被转义,请先取消它。然后在它需要之前逃脱它。
答案 2 :(得分:-1)
你可以先resolve the possibly-escaped strings,然后将它们传递给你自己逃跑的任何东西。