Quiero hacer un diccionario donde las palabras en inglés apunten a traducciones al ruso y al francés.
¿Cómo imprimo caracteres Unicode en Python? Además, ¿cómo se almacenan los caracteres Unicode en una variable?
python
python-unicode
NoobDev4iPhone
fuente
fuente
u
permite que Python las considere como literales de cadena Unicode.Respuestas:
Para incluir caracteres Unicode en su código fuente de Python, puede usar caracteres de escape Unicode en el formulario
\u0123
de su cadena y anteponer la literal de cadena con 'u'.A continuación, se muestra un ejemplo que se ejecuta en la consola interactiva de Python:
Las cadenas declaradas así son variables de tipo Unicode, como se describe en la documentación de Python Unicode .
Si ejecutar el comando anterior no muestra el texto correctamente, quizás su terminal no sea capaz de mostrar caracteres Unicode.
Para obtener información sobre cómo leer datos Unicode de un archivo, consulte esta respuesta:
Lectura de caracteres de un archivo en Python
fuente
mystr
? entonces, ¿cómo imprimirlo?print your_unicode_characters.encode('utf-8')
Imprima un carácter Unicode en Python:
Imprima un carácter Unicode directamente desde el intérprete de Python:
El carácter Unicode
u'\u2713'
es una marca de verificación. El intérprete imprime la marca de verificación en la pantalla.Imprima un carácter unicode desde un script de Python:
Pon esto en test.py:
Ejecútelo así:
Si no muestra una marca de verificación, entonces el problema podría estar en otra parte, como la configuración del terminal o algo que esté haciendo con la redirección de transmisión.
Almacene caracteres Unicode en un archivo:
Guarde esto en el archivo: foo.py:
Ejecútelo y canalice la salida al archivo:
Abra tmp.txt y mire dentro, verá esto:
Por lo tanto, ha guardado unicode e con una marca de ofuscación en un archivo.
fuente
Si está intentando
print()
usar Unicode y obtiene errores de códec ascii , consulte esta página , cuyo TLDR se realizaexport PYTHONIOENCODING=UTF-8
antes de iniciar Python (esta variable controla la secuencia de bytes que la consola intenta codificar sus datos de cadena). Internamente, Python3 usa UTF-8 por defecto (vea el COMO de Unicode) entonces ese no es el problema; simplemente puede poner Unicode en cadenas, como se ve en las otras respuestas y comentarios. Es cuando intenta sacar estos datos a su consola cuando ocurre el problema. Python cree que su consola solo puede manejar ascii. Algunas de las otras respuestas dicen, "Escríbalo en un archivo, primero", pero tenga en cuenta que especifican la codificación (UTF-8) para hacerlo (por lo tanto, Python no cambia nada por escrito) y luego usan un método para leer el archivo que simplemente escupe los bytes sin tener en cuenta la codificación, por lo que funciona.fuente
En Python 2, declaras cadenas unicode con a
u
, como enu"猫"
y usadecode()
yencode()
para traducir hacia y desde unicode, respectivamente.Es bastante más fácil en Python 3. Aquí se puede encontrar una muy buena descripción general . Esa presentación me aclaró muchas cosas.
fuente
Teniendo en cuenta que este es el primer resultado de desbordamiento de pila cuando Google busca este tema, vale la pena mencionar que el prefijo
u
de cadenas Unicode es opcional en Python 3. (el ejemplo de Python 2 se copió de la respuesta superior)Python 3 (ambos funcionan):
Python 2:
fuente
Utilizo Portable winpython en Windows, incluye la consola IPython QT, podría lograr lo siguiente.
su intérprete de consola debe ser compatible con Unicode para poder mostrar caracteres Unicode.
fuente
Solo una cosa más que aún no se ha agregado
En Python 2, si desea imprimir una variable que tiene unicode y usar
.format()
, haga esto (haga que la cadena base que se está formateando sea una cadena unicode conu''
:fuente
Esto corrige la impresión UTF-8 en Python:
fuente
Reemplace '+' con '000' . Por ejemplo, 'U + 1F600' se convertirá en 'U0001F600' y antepondrá el código Unicode con "\" e imprimirá. Ejemplo:
Marque esto, tal vez ayude a Python Unicode Emoji
fuente