Alors que les réponses à ce prix sont corrects, je pensais que je fournir un traitement plus complet:
La façon la plus simple de représenter une le caractère non-ASCII dans un littéral de script est d'utiliser le préfixe u et U ou U s'échappe, comme ceci:
print u"Look \u0411\u043e\u0440\u0438\u0441, a G-clef: \U0001d11e"
Ceci illustre:
- en utilisant le préfixe u pour vous assurer que la chaîne est un objet
unicode
- en utilisant l'évasion u pour les caractères dans le plan multilingue de base (U + FFFD et ci-dessous)
- en utilisant l'échappement U pour les caractères dans d'autres plans (U + 10000 et plus)
- que Ƃ (U + 0182 LETTRE MAJUSCULE LATINE B AVEC LE TOPBAR) et Б (U + 0411 CYRILLIC CAPTIAL LETTER BE) juste un exemple de beaucoup de semblables Points de code Unicode
Le codage de script par défaut pour Python qui fonctionne partout est ASCII. En tant que tel, vous devez utiliser les échappements ci-dessus pour encoder des littéraux de caractères non-ASCII.Vous pouvez informer l'interpréteur Python de l'encodage de votre script avec une ligne comme:
# -*- coding: utf-8 -*-
Cela ne modifie que l'encodage de votre script. Mais alors vous pouvez écrire:
print u"Look Борис, a G-clef: "
Notez que vous devez toujours utiliser le préfixe u pour obtenir un objet unicode
, pas un objet str
.
Enfin, il est possible de modifier le codage par défaut utilisé pour str
... mais pas recommandé, car il est un changement global et risque de ne pas jouer avec d'autres code python.
Je ne comprends pas pourquoi le downvote, puisque la question est si vague. +1 –
essayez les 4 variantes - avec et sans "codage:" et avec et sans u "" - et vous verrez que le codage: fait la différence, pas la chaîne unicode – hop
@hop: Je parle français, donc comprendre comment utiliser des caractères non-ASCII était l'une des premières choses que j'ai faites en apprenant Python. :) Si vous utilisez des chaînes brutes, cela ne fonctionnera que si la plate-forme gère UTF-8 (ou quel que soit l'encodage que vous utilisez). Il est donc utile que PO sache qu'elle doit utiliser des chaînes Unicode. Comme elle n'a même pas fourni d'échantillon, je ne vois pas comment on peut reprocher aux répondeurs de ne pas être assez précis. –