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 次 |
| 最近记录: |