Je veux créer un dictionnaire où les mots anglais pointent vers les traductions russe et française.
Comment imprimer des caractères Unicode en Python? De plus, comment stocker les caractères Unicode dans une variable?
python
python-unicode
NoobDev4iPhone
la source
la source
u
permet à python de les considérer comme des littéraux de chaîne Unicode.Réponses:
Pour inclure des caractères Unicode dans votre code source Python, vous pouvez utiliser des caractères d'échappement Unicode dans le formulaire
\u0123
de votre chaîne et préfixer le littéral de chaîne avec «u».Voici un exemple exécuté dans la console interactive Python:
Les chaînes déclarées comme ceci sont des variables de type Unicode, comme décrit dans la documentation Python Unicode .
Si l'exécution de la commande ci-dessus n'affiche pas le texte correctement pour vous, peut-être que votre terminal n'est pas capable d'afficher des caractères Unicode.
Pour plus d'informations sur la lecture des données Unicode à partir d'un fichier, consultez cette réponse:
Lecture de caractères à partir d'un fichier en Python
la source
mystr
? alors comment l'imprimer?print your_unicode_characters.encode('utf-8')
Imprimez un caractère Unicode en Python:
Imprimez un caractère Unicode directement à partir de l'interpréteur python:
Le caractère Unicode
u'\u2713'
est une coche. L'interprète imprime la coche à l'écran.Imprimez un caractère Unicode à partir d'un script python:
Mettez ceci dans test.py:
Exécutez-le comme ceci:
S'il ne montre pas de coche pour vous, le problème pourrait être ailleurs, comme les paramètres du terminal ou quelque chose que vous faites avec la redirection de flux.
Stockez les caractères Unicode dans un fichier:
Enregistrez ceci dans le fichier: foo.py:
Exécutez-le et dirigez la sortie vers le fichier:
Ouvrez tmp.txt et regardez à l'intérieur, vous voyez ceci:
Ainsi, vous avez enregistré unicode e avec une marque d'obfuscation dans un fichier.
la source
Si vous essayez d'
print()
Unicode et que vous obtenez des erreurs de codec ascii , consultez cette page , dont le TLDR est à faireexport PYTHONIOENCODING=UTF-8
avant de lancer python (cette variable contrôle la séquence d'octets sous laquelle la console essaie de coder vos données de chaîne). En interne, Python3 utilise UTF-8 par défaut (voir le HOWTO Unicode) donc ce n'est pas le problème; vous pouvez simplement mettre Unicode dans des chaînes, comme on le voit dans les autres réponses et commentaires. C'est lorsque vous essayez de transmettre ces données à votre console que le problème se produit. Python pense que votre console ne peut gérer que ascii. Certaines des autres réponses disent: «Écrivez-le dans un fichier, d'abord» mais notez qu'elles spécifient l'encodage (UTF-8) pour le faire (donc, Python ne change rien en écriture), puis utilisez une méthode de lecture le fichier qui crache juste les octets sans aucun souci de codage, c'est pourquoi cela fonctionne.la source
Dans Python 2, vous déclarez des chaînes unicode avec un
u
, comme dansu"猫"
et utilisezdecode()
etencode()
pour traduire vers et depuis unicode, respectivement.C'est un peu plus facile en Python 3. Un très bon aperçu peut être trouvé ici . Cette présentation a clarifié beaucoup de choses pour moi.
la source
Considérant qu'il s'agit du premier résultat de débordement de pile lors de la recherche sur Google dans ce sujet, il convient de mentionner que le préfixage des
u
chaînes Unicode est facultatif dans Python 3. (L'exemple Python 2 a été copié à partir de la première réponse)Python 3 (les deux fonctionnent):
Python 2:
la source
J'utilise Portable winpython dans Windows, il inclut la console IPython QT, je pourrais réaliser ce qui suit.
votre interpréteur de console doit prendre en charge unicode afin d'afficher les caractères unicode.
la source
Encore une chose qui n'a pas encore été ajoutée
Dans Python 2, si vous souhaitez imprimer une variable qui a unicode et l'utiliser
.format()
, faites-le (faites de la chaîne de base qui est formatée une chaîne unicode avecu''
:la source
Cela corrige l'impression UTF-8 en python:
la source
Remplacez «+» par «000» . Par exemple, 'U + 1F600' deviendra 'U0001F600' et ajoutera au code Unicode "\" et imprimera. Exemple:
Vérifiez ceci peut-être que cela aidera python unicode emoji
la source