我在将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/

10-08 21:52