二进制字符串、字节字符串、Unicode字符串与普通字符串(str)之间的区别
我有点困惑。在Python中,二进制字符串、字节字符串、Unicode字符串和普通字符串(str)有什么区别呢?我现在用的是Python 2.6。
1 个回答
23
这要看你使用的Python版本。
在Python 2.x中,如果你写 'abc'
,它的类型是 str
,但这表示的是字节字符串。如果你想要一个Unicode字符串,你必须写 u'abc'
。
在Python 3.x中,如果你写 'abc'
,它的类型仍然是 str
,但这意味着它是一个Unicode字符的字符串。如果你想要一个字节字符串,你必须写 b'abc'
。而且不允许写 u'abc'
。
| 2.x | 3.x
--------+--------------------------+-----------------------
Bytes | 'abc' <type 'str'> | b'abc' <type 'bytes'>
Unicode | u'abc' <type 'unicode'> | 'abc' <type 'str'>