Python字符串为Unicode [复制](Python string to unicode [d

2019-06-23 20:17发布

可能重复:
如何看待一个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)是不是答案。 又是什么?

Answer 1:

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'


Answer 2:

与解码它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()方法是更好。



Answer 3:

>>> a="Hello\u2026"
>>> print a.decode('unicode-escape')
Hello…


文章来源: Python string to unicode [duplicate]