2012-08-06 10 views
8

Estoy usando Ubuntu 12.04 LTS. Cuando intento algo como esto en la terminal:Python imprimir unicode no muestra los símbolos correctos

[email protected]:/usr/share/fonts/truetype/ttf-dejavu$ echo вдлжофыдвж 
вдлжофыдвж 

Los símbolos se muestran correctamente. Pero si intenta imprimir caracteres Unicode utilizando Python 2.7 me sale esto:

>>> print u'абв' 
ц│ц┌ц≈ 

Como muestra el pitón tengo codificación UTF-8 por defecto para el terminal:

>>> sys.stdout.encoding 
'UTF-8' 
+0

¿Qué obtienes por 'repr (u'абв ')'? –

+0

¿Esto sucede en python 3.2? ¿Qué pasa con 'unicode ('aбв')'? –

+0

>>> repr ('aбв') "'\\ xc1 \\ xc2 \\ xd7'" – sunprophit

Respuesta

5

Su entrada no está correctamente descifrada por el terminal. Este no es un problema de Python.

Para demostrarlo, utilizan la representación Unicode:

myunicode = u'\u0430\u0431\u0432' 
print myunicode 
print myunicode.encode('utf-8') 

Si esto no se imprime la cadena original абв dos veces, entonces usted necesita para configurar su programa emulador de terminal correctamente.

+1

Genial, he cambiado el conjunto de caracteres de datos recibidos a UTF-8 en putty config. Ahora funciona. – sunprophit

Cuestiones relacionadas