我在将 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 文字('' vs u'')。获得 UTF-8 后,您需要将其解码为 Unicode,或者使用 XML 实体将其再次编码为 ASCII:
>>> name = '\xc3\xa1\xc3\xa1\xc3\xa1\xc3\xa1'.decode('utf-8')
>>> name.encode('ascii', 'xmlcharrefreplace')
'áááá'
