我在将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')
'áááá'
关于python - Python:将Unicode转换为html实体,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29882330/