python: unicode в терминале Windows, используемая кодировка?

Я использую интерпретатор Python в терминале Windows 7.
Я пытаюсь сосредоточиться на юникоде и кодировках.

Я набираю:

>>> s='ë'
>>> s
'\x89'
>>> u=u'ë'
>>> u
u'\xeb'

Вопрос 1 : Почему кодировка, используемая в строке s , отличается от той, которая используется в юникоде string u ?

Продолжаю и набираю:

>>> us=unicode(s)
Traceback (most recent call last):
  File "", line 1, in 
UnicodeDecodeError: 'ascii' codec can't decode byte 0x89 in position 0: ordinal
not in range(128)
>>> us=unicode(s, 'latin-1')
>>> us
u'\x89'

Question2 : Я попытался использовать кодировку latin-1 , если повезет, чтобы превратить строку в юникод строка (на самом деле я сначала попробовал несколько других, включая utf-8 ). Как мне узнать, какую кодировку терминал использовал для кодирования моей строки?

Вопрос 3 : как я могу заставить терминал печатать ë как ë вместо '\ x89' или u'xeb '? Хм, глупый я. print (s) выполняет свою работу.

Я уже рассматривал этот связанный вопрос SO, но никаких подсказок оттуда: Установить кодировку терминала Python в Windows

7
задан Community 23 May 2017 в 11:51
поделиться