Python字符串到unicode

pro*_*ngs 53 python string unicode python-2.x python-unicode

可能重复:
如何将ASCII字符串视为unicode并在python中对其中的转义字符进行转换?
如何将unicode转义序列转换为python字符串中的unicode字符

我有一个字符串,其中包含unicode字符,例如\u2026等等.不知何故,我没有收到它unicode,但是收到的是str.如何将其转换回unicode?

>>> a="Hello\u2026"
>>> b=u"Hello\u2026"
>>> print a
Hello\u2026
>>> print b
Hello…
>>> print unicode(a)
Hello\u2026
>>> 
Run Code Online (Sandbox Code Playgroud)

所以显然unicode(a)不是答案.那是什么?

geo*_*org 76

Unicode转义只能在unicode字符串中使用,所以这个

 a="\u2026"
Run Code Online (Sandbox Code Playgroud)

实际上是一个由6个字符组成的字符串:'\','u','2','0','2','6'.

要使用unicode,请使用decode('unicode-escape'):

a="\u2026"
print repr(a)
print repr(a.decode('unicode-escape'))

## '\\u2026'
## u'\u2026'
Run Code Online (Sandbox Code Playgroud)


Chr*_*gan 26

unicode-escape编解码器解码它:

>>> a="Hello\u2026"
>>> a.decode('unicode-escape')
u'Hello\u2026'
>>> print _
Hello…
Run Code Online (Sandbox Code Playgroud)

这是因为对于非unicode字符串,\u2026它不被识别,而是被视为字面系列的字符(更清楚地说,'Hello\\u2026').您需要解码转义符,unicode-escape编解码器可以为您执行此操作.

请注意,您可以unicode通过指定编解码器参数以相同的方式识别它:

>>> unicode(a, 'unicode-escape')
u'Hello\u2026'
Run Code Online (Sandbox Code Playgroud)

a.decode()方式更好.


jam*_*lak 16

>>> a="Hello\u2026"
>>> print a.decode('unicode-escape')
Hello…
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

140097 次

最近记录:

13 年,6 月 前