Skip to main content
 首页 » 编程设计

Python:Unicode 到 html 实体

2025年05月04日15sky-heaven

我在将 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') 
'áááá'