Я немного смущен. В Python в чем разница между двоичной строкой, байтовой строкой, строкой unicode и простой старой строкой (str)? Я использую Python 2.6.
Разница между двоичной строкой, байтовой строкой, строкой unicode и обычной строкой (str)
Ответ 1
Это зависит от версии на 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'>