我正在使用Python 2.7.3。谁能解释一下文字之间的区别:
'\u0391'
and:
u'\u0391'
以及它们在下面的 REPL 中的不同方式(特别是添加到 a1 的额外斜杠):
>>> a1='\u0391'
>>> a1
'\\u0391'
>>> type(a1)
<type 'str'>
>>>
>>> a2=u'\u0391'
>>> a2
u'\u0391'
>>> type(a2)
<type 'unicode'>
>>>
您只能使用 unicode 转义符 (\uabcd
) 在 unicode 字符串中。它们在字节字符串中没有任何意义。 Python 2 Unicode 文字 (u'some text'
) 是与 Python 字节字符串 ('some text'
).
这就像使用\t
versus \T
;前者在 python 文字中具有含义(它被解释为制表符),后者仅表示反斜杠和大写 T(两个字符)。
为了帮助理解 Unicode 和字节字符串之间的区别,请阅读Python Unicode 指南 http://docs.python.org/2/howto/unicode.html;我还可以推荐Joel Spolsky 关于 Unicode 的文章 http://www.joelonsoftware.com/articles/Unicode.html.
注意:在 Python 3 中,同样存在差异,但是'some text'
是一个 Unicode 字符串文字,并且b'some text'
是字节串语法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)