我需要使用Python中的HTML实体将unicode UTF-8字符串编码为ASCII。
要明确:
source = u"Hello…"
wanted = "Hello…"
这不是解决方案:
as_ascii = source.encode('ascii', 'xmlcharrefreplace')
因为as_ascii
将设置为Hello…
- 即使用XML字符引用,而不是HTML字符引用。
是否有Python模块/函数/实体字典可以:
答案 0 :(得分:2)
示例程序(文件decode_to_entity.py
):
#-*- coding: utf-8 -*-
import htmlentitydefs as entity
def decode_to_entity(s):
t = ""
for i in s:
if ord(i) in entity.codepoint2name:
name = entity.codepoint2name.get(ord(i))
t += "&" + name + ";"
else:
t += i
return t
print(decode_to_entity(u"Hello…"))
示例执行:
$ python decode_to_entity.py
Hello…