可能重复:
如何看待一个ASCII字符串为Unicode和蟒蛇取消转义的转义字符的呢?
如何转换Unicode转义序列的Unicode字符在Python字符串
我有一个包含Unicode字符的字符串,如\u2026
等,不知怎的,它没有收到我的unicode
,但收为str
。 如何将其转换回Unicode的?
>>> a="Hello\u2026"
>>> b=u"Hello\u2026"
>>> print a
Hello\u2026
>>> print b
Hello…
>>> print unicode(a)
Hello\u2026
>>>
所以很明显unicode(a)
是不是答案。 又是什么?
Unicode转义仅在Unicode字符串的工作,所以这
a="\u2026"
实际上是6个字符的字符串: '\', 'U', '2', '0', '2', '6'。
为了使统一了这一点,使用decode('unicode-escape')
a="\u2026"
print repr(a)
print repr(a.decode('unicode-escape'))
## '\\u2026'
## u'\u2026'
与解码它unicode-escape
编解码器:
>>> a="Hello\u2026"
>>> a.decode('unicode-escape')
u'Hello\u2026'
>>> print _
Hello…
这是因为非Unicode字符串\u2026
是不承认,但作为文字一系列字符代替处理(把它更加明确, 'Hello\\u2026'
)。 您需要将逃逸解码,并unicode-escape
编解码器可以为你做的。
请注意,您可以得到unicode
由指定的编解码器参数来识别它以同样的方式:
>>> unicode(a, 'unicode-escape')
u'Hello\u2026'
但a.decode()
方法是更好。
>>> a="Hello\u2026"
>>> print a.decode('unicode-escape')
Hello…