html.escape()和.unescape()是不对称的。根据the docs的说法,转义只转换&,<和>,而.unescape处理“所有命名和数字字符引用”。如何转义.unescape()取消转义的所有字符?
当前行为:
html.unescape('°')
'°'
html.escape('°')
'°'
所需的行为:
html.unescape('°')
'°'
html.escape('°')
'°'
发布于 2018-08-14 05:45:34
您链接到的文档链接到以下内容:
html.entities.codepoint2name
正如另一位发帖者指出的那样,你可能并不真的想转义所有的东西,因为每个字符都有实体名称,或者至少有数字转义。
但是,根据上面的映射,您当然可以创建自己的函数,该函数逐个字符地遍历字符串,并保留原始字符或将其替换为上述字典中的实体。只需选择您最希望以实体形式而不是字符形式表示的字符或字符范围。
https://stackoverflow.com/questions/51830894
复制相似问题