Python:转换为HTML特殊字符

3

1
请参考http://docs.python.org/library/htmllib.html#module-htmlentitydefs中有关编程的相关内容。 - Ashwini Chaudhary
1
我认为你需要的是所谓的“HTML转义”。这就是为什么你自己没有找到答案的原因。这里有一个Stackoverflow答案链接 - anonymous
@TimPietzcker:哎呀……标题实在没什么用;-) - vartec
1个回答

12

如果你只关心像 &, <> 这样的关键特殊字符:

>>> import cgi
>>> cgi.escape("<hello&goodbye>")
'&lt;hello&amp;goodbye&gt;'

对于其他非ASCII字符:

>>> "Übeltäter".encode("ascii", "xmlcharrefreplace")
b'&#220;belt&#228;ter'

当然,如果必要的话,你可以将两者组合起来:

>>> cgi.escape("<Übeltäter>").encode("ascii", "xmlcharrefreplace")
b'&lt;&#220;belt&#228;ter&gt;'

1
>>> "Übeltäter".encode("ascii", "xmlcharrefreplace") results inUnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128) - brandones
3
cgi.escape()已弃用,请改用html.escape() - 参见此答案 - Vito Gentile

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接