Python 如何使用HTML实体将Unicode编码为ASCII

Python 如何使用HTML实体将Unicode编码为ASCII,python,unicode,encoding,utf-8,Python,Unicode,Encoding,Utf 8,我需要用Python中的HTML实体将unicode UTF-8字符串编码为ASCII 要明确的是: source = u"Hello…" wanted = "Hello…" 这不是解决方案: as_ascii = source.encode('ascii', 'xmlcharrefreplace') 因为as_ascii将设置为Hello…-ie,使用XML字符引用,而不是HTML字符引用 是否有一个Python模块/函数/实体字典,可以: 使用HTML字符

我需要用Python中的HTML实体将unicode UTF-8字符串编码为ASCII

要明确的是:

source = u"Hello…"
wanted = "Hello…"
这不是解决方案:

as_ascii = source.encode('ascii', 'xmlcharrefreplace')
因为
as_ascii
将设置为
Hello…-ie,使用XML字符引用,而不是HTML字符引用

是否有一个Python模块/函数/实体字典,可以:

  • 使用HTML字符引用将unicode解码为ASCII
  • 将包含XML字符引用的ASCII字符串替换为HTML字符引用(视情况而定)
  • 示例程序(文件
    解码为实体.py
    ):

    和示例执行:

    $ python decode_to_entity.py
    Hello…
    

    对于实体字典,
    htmlentitydefs.codepoint2name
    是否有助于方法2
    htmlentitydefs.codepoint2name[8230]=“hellip”
    。是的!谢谢我可以使用htmlentitydefs!我不得不从htmlentitydefs包中提取一些元素,但我想到了这个——数字字符引用在HTML中与在XML中一样有效,并且对于所有没有特定于HTML的实体的字符,您可能都需要它们。是的,我知道它们在呈现时是等效的。我特别想要HTML实体。哇。这对我的unicode字符串有效,但我不明白它为什么有效。我有日文文本,“xmlcharrefreplace”也适用于web显示,但担心来自web的输入不会存储为正确的utf8。如何将web输出文本作为UTF8存储在数据库中的过程反转?因为
    ord
    返回字符的整数值(可以大于255)。看看这个:
    a=u‘Ś’
    这是
    u'\u015a'
    ,十六进制的
    15a
    是十进制格式的346(人类可读)(并且
    ord(a)
    将返回
    346
    )。您可以在此处阅读更多内容:
    $ python decode_to_entity.py
    Hello…