我有点困惑。在Python中,二进制字符串,字节字符串,unicode字符串和普通旧字符串(str)之间的区别是什么?我正在使用Python 2.6。
答案 0 :(得分:20)
这取决于您使用的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'>