Comment imprimer des caractères Unicode en Python?
Je veux faire un dictionnaire où les mots anglais du point de russe et de français.
Comment puis-je imprimer des caractères unicode en Python? Aussi, comment voulez-vous stocker des caractères unicode dans une variable?
- Cela aide: docs.python.org/howto/unicode.html
- Jetez un oeil ici. La préfixation de vos chaînes avec
u
python permet de les considérer comme de l'unicode des littéraux de chaîne.
Vous devez vous connecter pour publier un commentaire.
Pour inclure des caractères Unicode dans votre code source Python, vous pouvez utiliser Unicode des caractères d'échappement dans la forme
\u0123
dans votre chaîne, et le préfixe de la chaîne littérale avec 'u'.Voici un exemple d'exécution dans le Python console interactive:
Chaînes déclarées comme ce sont Unicode type de variables, comme décrit dans la Python Unicode documentation.
Si l'exécution de la commande ci-dessus ne s'affiche pas correctement le texte pour vous, peut-être que votre terminal n'est pas capable d'afficher des caractères Unicode.
Pour plus d'informations sur la lecture de données Unicode à partir d'un fichier, voir cette réponse:
Caractère de la lecture du fichier en Python
print u'Россия'
mystr
? comment puis à l'imprimer?print your_unicode_characters.encode('utf-8')
Imprimer un caractère unicode dans Python:
Imprimer un caractère unicode directement à partir de l'interpréteur python:
De caractères Unicode
u'\u2713'
est une coche. L'interprète imprime le coche sur l'écran.Imprimer un caractère unicode à partir d'un script python:
Mettre cela en test.py:
L'exécuter comme ceci:
Si ce n'est pas une coche pour vous, alors le problème pourrait être ailleurs, comme les paramètres du terminal, ou quelque chose que vous faites avec le flux de redirection.
Stocker des caractères unicode dans un fichier:
Enregistrer ce fichier: foo.py:
L'exécuter et le tuyau de sortie de fichier:
Ouvrir tmp.txt et regarder à l'intérieur, vous voyez ceci:
Donc vous avez enregistré unicode e avec un obscurcissement marque dans un fichier.
Si vous essayez de
print()
Unicode, et prise en ascii codec erreurs, découvrez cette page, le TLDR de ce qui est neexport PYTHONIOENCODING=UTF-8
avant la cuisson jusqu'python (cette variable qui détermine ce que la séquence d'octets de la console essaie d'encoder votre chaîne de données). En interne, Python3 utilise l'UTF-8 par défaut (voir l'Unicode HOWTO) ce qui n'est pas le problème; vous pouvez simplement mettre de l'Unicode dans les chaînes, comme on le voit dans les autres réponses et commentaires. C'est quand vous essayez et obtenir ces données à la console que le problème arrive. Python pense que votre console ne peut gérer que l'ascii. Certains des autres réponses de dire, "Écrire dans un fichier, le premier", mais remarque qu'ils spécifier l'encodage (UTF-8) pour le faire (donc, Python n'a pas changer quoi que ce soit à l'écrit), et ensuite utiliser une méthode de lecture du fichier qui vient crache les octets sans aucun égard pour l'encodage, c'est pourquoi cela fonctionne.En Python 2, vous déclarez des chaînes unicode avec un
u
, comme dansu"猫"
et l'utilisationdecode()
etencode()
à traduire et en unicode, respectivement.C'est un peu plus simple en Python 3. Un très bon aperçu peut être trouvée ici. Cette présentation a clarifié beaucoup de choses pour moi.
- Je utiliser Portable winpython dans Windows, il comprend IPython QT console, j'ai pu atteindre les objectifs suivants.
votre console interprète doit en charge unicode pour afficher des caractères unicode.
Cela résout UTF-8 impression en python:
Juste une chose de plus qui n'a pas encore été ajouté
En Python 2, si vous souhaitez imprimer une variable qui a unicode et l'utilisation
.format()
, puis ce faire, (faire de la chaîne de base qui est en cours de formatage d'une chaîne unicode avecu''
:Considérant que c'est le premier débordement de pile de résultat lors de la recherche sur google à ce sujet, il est à noter que la préfixation
u
à des chaînes unicode est facultatif en Python 3. (Python 2 exemple a été copié à partir du haut de réponse)Python 3 (les deux fonctionnent):
Python 2: