2013-10-09 4 views
0

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

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

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

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

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

ответ

4

Ваш пример Python 2 - это bytestring, ваш Python 3 является строкой unicode. Присвойте пример Python 2 u, чтобы получить эквивалентный объект.

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

Смежные вопросы