Я не думаю, что Python выполняет какое-либо автоматическое кодирование или декодирование при вводе / выводе консоли. Учтите следующее:
>>> 'é'
'\xc3\xa9'
>>> 'é'.decode('UTF-8')
u'\xe9'
Вы заметите, что \xe9
- это кодовая точка Unicode для 'LATIN SMALL LETTER E WITH ACUTE' , тогда как \xc3\xa9
- это последовательность байтов, соответствующая тому же символу в UTF-8.
Все меняется в Python 3, так как все строки в Unicode. Я не уверен в правилах там.