二进制字符串,字节字符串,unicode字符串和普通字符串(str)之间的区别

时间:2011-11-21 22:55:13

标签: python

我有点困惑。在Python中,二进制字符串,字节字符串,unicode字符串和普通旧字符串(str)之间的区别是什么?我正在使用Python 2.6。

1 个答案:

答案 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'>