可能重复:
How do I treat an ASCII string as unicode and unescape the escaped characters in it in python?
How do convert unicode escape sequences to unicode characters in a python string
我有一个包含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)不是答案。那又是什么?
发布于 2012-04-22 13:59:40
Unicode转义只在unicode字符串中工作,因此
a="\u2026"实际上是一个由6个字符组成的字符串:'\','u','2','0','2','6‘。
若要使unicode从中受益,请使用decode('unicode-escape')
a="\u2026"
print repr(a)
print repr(a.decode('unicode-escape'))
## '\\u2026'
## u'\u2026'发布于 2012-04-22 13:59:53
用unicode-escape编解码器解码它:
>>> a="Hello\u2026"
>>> a.decode('unicode-escape')
u'Hello\u2026'
>>> print _
Hello…这是因为对于非unicode字符串,\u2026是不被识别的,而是被看作是一个字符序列(更清楚地说,'Hello\\u2026')。您需要对转义进行解码,而unicode-escape编解码器可以为您完成这一任务。
请注意,通过指定codec参数,可以让unicode以相同的方式识别它:
>>> unicode(a, 'unicode-escape')
u'Hello\u2026'但是a.decode()的方式更好。
发布于 2012-04-22 14:00:00
>>> a="Hello\u2026"
>>> print a.decode('unicode-escape')
Hello…https://stackoverflow.com/questions/10268518
复制相似问题