在Python中转义HTML的最简单方法是什么?
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已在Python3.2中弃用,转而使用html.escape
,它的功能相同,但_quote
_ 默认情况下为True。
以上是 在Python中转义HTML的最简单方法是什么? 的全部内容, 来源链接: utcz.com/qa/397981.html