Разница в кодировке символов python 2.X и 3.X

Когда я набираю следующий французский символ в интерпретаторе Python 2.X, он дает мне последовательность байтов utf-8:

>>> x = 'é'
>>> x
'\xc3\xa9'

Но то же самое на Python 3.X приводит к следующему поведению:

>>> x = 'é'
>>> x
'é'

Но говорят, что кодировка по умолчанию для Python 3 — utf-8. Может кто-нибудь объяснить такое поведение?


person user634615    schedule 09.10.2013    source источник


Ответы (1)


Ваш пример Python 2 представляет собой строку байтов, ваш Python 3 представляет собой строку Unicode. Добавьте к примеру Python 2 префикс u, чтобы получить эквивалентный объект.

Кроме того, repr строк Unicode в Python 3 изменяется для отображения символов вместо кодовых точек.

person Wooble    schedule 09.10.2013