уже работает на ОП. Проблема не в кодировке консоли.
ользую интерпретатор Python в терминале Windows 7.
Я пытаюсь обернуть голову вокруг юникода и кодировок.
Я печатаю:
>>> s='ë'
>>> s
'\x89'
>>> u=u'ë'
>>> u
u'\xeb'
Вопрос 1: Почему кодировка используется в строкеs
отличается от того, который используется в строке Unicodeu
?
Я продолжаю и набираю:
>>> us=unicode(s)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0x89 in position 0: ordinal
not in range(128)
>>> us=unicode(s, 'latin-1')
>>> us
u'\x89'
Вопрос 2: Я пытался с помощьюlatin-1
Кодировка на удачу, чтобы превратить строку в строку Unicode (на самом деле, я сначала попробовал кучу других, в том числеutf-8
). Как я могу узнать, какую кодировку терминал использовал для кодирования моей строки?
Вопрос 3: как я могу сделать печать терминалаë
какë
вместо'\x89'
или жеu'xeb'
? Хм, глупый я.print(s)
делает работу
Я уже посмотрел на этот связанный с этим вопрос, но никаких подсказок оттуда:Установить кодировку терминала Python в Windows