二进制字符串、字节字符串、Unicode字符串与普通字符串(str)之间的区别

18 投票
1 回答
6839 浏览
提问于 2025-04-17 06:47

我有点困惑。在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'>

撰写回答