На Python 2 вы говорите Python печатать два байта.Он печатает два байта.Ваш терминал интерпретирует эти два байта как кодировку é
и отображает é
.(Похоже, ваш терминал использует UTF8.)
В Python 3 вы говорите Python печатать два символа с кодовыми точками Unicode 0o303 и 0o251 (в восьмеричном).Эти символы é
.Python кодирует эти символы в системно-зависимой кодировке (вероятно, UTF8) и записывает полученные байты в стандартный вывод.Затем ваш терминал декодирует байты и отображает é
.
Если вы хотите, чтобы Python 3 печатал é
, присвойте ему кодовую точку Unicode (\u00e9
) или просто скажите, чтобы она напечатала é
:
$ python3.6 -c 'print("é")'
é