html.escape unescape处理的所有字符(不仅是&,<和>)

时间:2018-08-13 21:33:38

标签: python html escaping

html.escape()和.unescape()不对称。根据{{​​3}},转义仅转换&,<和>,而.unescape处理“所有命名和数字字符引用”。如何转义.unescape()转义的所有字符?

当前行为:

html.unescape('&deg;')
'°'
html.escape('°')
'°'

期望的行为:

html.unescape('&deg;')
'°'
html.escape('°')
'&deg;'

1 个答案:

答案 0 :(得分:2)

您链接到的文档链接到此:

html.entities.codepoint2name

正如另一位发帖人所指出的那样,您可能真的不想转义所有内容,因为每个字符都有实体名称,或者至少是数字转义符。

但是,鉴于上述映射,您当然可以创建自己的函数,该函数逐个字符地处理字符串,并保留原始字符或将其替换为上述字典中的实体。只需选择最想以实体形式而不是字符形式表示的字符或字符范围即可。