我希望在python中转换像"%$!&@á é ©"
这样的特殊字符,而不仅仅是'<&">'
,因为我到目前为止所找到的所有文档和参考资料都是如此。 cgi.escape无法解决问题。
例如,字符串"á ê ĩ &"
应转换为"á ê ĩ &"
。
anyboy知道怎么解决吗? 我正在使用python 2.6。
答案 0 :(得分:7)
您可以使用http://docs.python.org/library/htmllib.html#module-htmlentitydefs
中可以找到的词典构建自己的循环您正在寻找的是htmlentitydefs.codepoint2name
答案 1 :(得分:5)
我找到了一个内置的解决方案来搜索@Ruben Vermeersch在他的回答中说的htmlentitydefs.codepoint2name。解决方案在此处找到:http://bytes.com/topic/python/answers/594350-convert-unicode-chars-html-entities
这是功能:
def htmlescape(text):
text = (text).decode('utf-8')
from htmlentitydefs import codepoint2name
d = dict((unichr(code), u'&%s;' % name) for code,name in codepoint2name.iteritems() if code!=38) # exclude "&"
if u"&" in text:
text = text.replace(u"&", u"&")
for key, value in d.iteritems():
if key in text:
text = text.replace(key, value)
return text
谢谢大家的帮助! ;)