cgi.escape似乎是一种可能的选择。它运作良好吗?有什么更好的东西吗?
最佳答案
cgi.escape
很好。它逃脱了:
<
到<
>
到>
&
到&
对于所有HTML而言,这就足够了。
编辑:如果您有非ASCII字符,您还想转义,以便包含在使用不同编码的另一个编码文档中,如Craig所说,只需使用:
data.encode('ascii', 'xmlcharrefreplace')
别忘了先使用编码后的编码将
data
解码为unicode
。但是根据我的经验,如果您从一开始就一直使用
unicode
,则这种编码是没有用的。只需在文档头中指定的编码末尾进行编码即可(使用utf-8
可获得最大兼容性)。例子:
>>> cgi.escape(u'<a>bá</a>').encode('ascii', 'xmlcharrefreplace')
'<a>bá</a>
同样值得一提的(感谢Greg)是
quote
需要的额外cgi.escape
参数。将其设置为True
,cgi.escape
也会转义双引号字符("
),因此您可以在XML/HTML属性中使用结果值。编辑:请注意,cgi.escape已在Python 3.2中弃用,转而支持
html.escape
,除了quote
默认为True以外,该功能相同。关于python - 在Python中转义HTML的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1061697/