Python:Unicode 到 html 个实体

Python: Unicode to html entities

我在将 unicode 转换为 html 实体时遇到问题。

这是我当前的代码:

>> name = u'\xc3\xa1\xc3\xa1\xc3\xa1\xc3\xa1'

>> entities = name.encode('ascii', 'xmlcharrefreplace')

>> print str(entities)
áááá

每个 \xc3\xa1 = á(多字节字符),但是当我将其转换为实体时,我为单个字符得到 2 个实体。

\xc3\xa1 在 UTF-8 中是 á,在 Unicode 中不是

(áááá 在 Unicode 中是 u'\xe1\xe1\xe1\xe1')

因此您需要使用字符串文字来定义它,而不是 unicode 文字(''u'')。获得 UTF-8 后,您需要将其解码为 Unicode,或者用 XML 个实体将其再次编码为 ASCII:

>>> name = '\xc3\xa1\xc3\xa1\xc3\xa1\xc3\xa1'.decode('utf-8')
>>> name.encode('ascii', 'xmlcharrefreplace')
'áááá'