cgi.escape 似乎是一种可能的选择。效果好吗?有什么被认为更好的东西吗?
原文由 Josh Gibson 发布,翻译遵循 CC BY-SA 4.0 许可协议
cgi.escape 似乎是一种可能的选择。效果好吗?有什么被认为更好的东西吗?
原文由 Josh Gibson 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 Python 3.2 中引入了一个新的 html
模块,用于转义 HTML 标记中的保留字符。
它有一个功能 escape()
:
>>> import html
>>> html.escape('x > 2 && x < 7 single quote: \' double quote: "')
'x > 2 && x < 7 single quote: ' double quote: "'
原文由 Maciej Ziarko 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
2 回答897 阅读✓ 已解决
html.escape
现在是正确答案,在 3.2 之前的 python 中它曾经是cgi.escape
。它逃脱了:<
至<
>
至>
&
至&
这对所有 HTML 来说已经足够了。
编辑:如果您有非 ascii 字符,您也想转义,以便包含在另一个使用不同编码的编码文档中,如 Craig 所说,只需使用:
不要忘记解码
data
到unicode
首先,使用它被编码的任何编码。但是,根据我的经验,如果您从一开始就一直使用
unicode
,那么这种编码是无用的。只需在末尾编码为文档标头中指定的编码(utf-8
以获得最大兼容性)。例子:
同样值得注意(感谢 Greg)的是额外的
quote
参数cgi.escape
需要。将其设置为True
,cgi.escape
也会转义双引号字符("
),因此您可以在 XML/HTML 中使用结果值。编辑:请注意,cgi.escape 在 Python 3.2 中已被弃用,取而代之的是
html.escape
,除了quote
默认为 True。