繁体   English   中英

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文字( '' vs u'' )。 获得UTF-8后,您需要将其解码为Unicode,或者用XML实体再次将其编码为ASCII:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM