python: unicode no terminal do Windows, codificação usada?
Estou usando o interpretador Python no terminal do Windows 7.
Estou tentando entender meu código e codificações unicod
Eu digito
>>> s='ë'
>>> s
'\x89'
>>> u=u'ë'
>>> u
u'\xeb'
Questão : Por que a codificação é usada na strings
diferente daquele usado na string unicodeu
?
Continuo e digite:
>>> 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'
Questão : Tentei usar olatin-1
codificação de boa sorte para transformar a string em uma string unicode (na verdade, tentei várias outras antes, incluindoutf-8
). Como posso descobrir qual codificação o terminal usou para codificar minha string?
Questão : como faço para imprimir o terminalë
Comoë
ao invés de'\x89'
ouu'xeb'
? Hmm, eu sou estúpido.print(s)
faz o trabalho.
Eu já olhei para essa pergunta relacionada ao SO, mas não há pistas de lá:Defina a codificação do terminal Python no Windows