什么是最简单的方式来转义Python中的Python?

问题:

cgi.escape似乎是一个可能的选择。它是否正常工作?有什么被认为更好吗?

回答:

 cgi.escape很好。它逃脱:

  •  <&lt;
  •  >&gt;
  •  &&amp;

这对所有的HTML都是足够的。
编辑:如果你有非ASCII字符,你也想逃脱,包含在另一个使用不同编码的编码文档,如Craig说,只需使用:

data.encode('ascii', 'xmlcharrefreplace')

不要忘记首先将data解码为unicode,使用编码的任何编码。
然而,在我的经验中,如果你从开始就一直使用unicode,这种编码就没用。只需在文档头(utf-8)中指定的编码的最后编码,以获得最大的兼容性。
例:

>>> cgi.escape(u'<a>bá</a>').encode('ascii', 'xmlcharrefreplace')
'&amp;lt;a&amp;gt;b&amp;#225;&amp;lt;/a&amp;gt;

值得注意的(感谢格雷格)是额外的quote参数cgi.escape占用。它设置为Truecgi.escape也转义双引号字符("),以便您可以将结果值用于XML / HTML属性。
编辑:请注意,cgi.escape已经在Python 3.2中弃用,赞成html.escape,除了quote默认为True之外,它也是一样的。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: What’s the easiest way to escape HTML in Python?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

9 + 1 =