HOWTO · Python
Unicode-Zeichen in Python drucken
Dieses Tutorial zeigt, wie Sie Unicode-Zeichen in Python drucken
Auf dieser Seite
Python-Zeichenfolgen können Unicode-Zeichen direkt enthalten, und print() gibt diese Zeichen auf der Standardausgabe aus. Wenn Sie den hexadezimalen Codepoint oder den Unicode-Namen eines Zeichens kennen, können Sie es mit einer Escape-Sequenz in eine Zeichenfolge einfügen, mit chr() erzeugen oder mit unicodedata.lookup() nachschlagen.
Ein Unicode-Codepoint wird als U+ gefolgt von einer Hexadezimalzahl geschrieben. Zum Beispiel steht U+2612 für ☒ und U+7687 für 皇. Die drei folgenden Methoden erzeugen dieselbe Zeichenfolge: ☒皇ÉÉ.
Methode 1: Unicode-Escape-Sequenzen verwenden
In einem Python-Zeichenfolgenliteral folgen auf \u genau vier hexadezimale Ziffern, auf \U dagegen acht. Verwenden Sie \u für Codepoints bis einschließlich U+FFFF und \U für Codepoints oberhalb dieses Bereichs. Die zusätzlichen führenden Nullen in der \U-Form gehören zur festen Breite von acht Ziffern.
Führen Sie dieses Beispiel aus:
unicode_text = "\u2612\u7687\u00C9\u00C9"
print(unicode_text)
☒皇ÉÉ
Jede Escape-Sequenz fügt der Zeichenfolge ein Zeichen hinzu. Python wertet diese Sequenzen beim Einlesen des Zeichenfolgenliterals aus. Daher enthält der ausgegebene Text die Zeichen selbst und nicht die Escape-Notation.
Methode 2: Die Funktion chr() verwenden
Verwenden Sie chr(), wenn Ihr Code bereits ganzzahlige Codepoints enthält, etwa aus eingelesenen Daten. Die Funktion gibt für den übergebenen Codepoint eine einstellige Zeichenfolge zurück. Verketten Sie solche Zeichenfolgen, um ein längeres Ergebnis zu erhalten.
unicode_text = chr(0x2612) + chr(0x7687) + chr(0x00C9) + chr(0x00C9)
print(unicode_text)
☒皇ÉÉ
Das Präfix 0x kennzeichnet jede Ganzzahl als Hexadezimalzahl. Die daraus erzeugte Zeichenfolge lässt sich wie jede andere Python-Zeichenfolge verwenden.
Methode 3: Unicode-Namen verwenden
Wenn sich der Name eines Zeichens leichter merken lässt als seine Zahl, verwenden Sie unicodedata.lookup() aus Pythons Standardmodul unicodedata. Die Funktion gibt das Zeichen zurück, das einem exakten Unicode-Namen entspricht. Verketten Sie die zurückgegebenen Zeichenfolgen und übergeben Sie das Ergebnis an print():
import unicodedata
unicode_text = (
unicodedata.lookup("BALLOT BOX WITH X")
+ unicodedata.lookup("CJK UNIFIED IDEOGRAPH-7687")
+ unicodedata.lookup("LATIN CAPITAL LETTER E WITH ACUTE")
+ unicodedata.lookup("LATIN CAPITAL LETTER E WITH ACUTE")
)
print(unicode_text)
☒皇ÉÉ
Verwenden Sie die Schreibweise, die in den Unicode-Zeichennamen aufgeführt ist. Ein falsch geschriebener oder unbekannter Name lässt sich nicht nachschlagen. Prüfen Sie den Namen daher, bevor Sie ihn verwenden.
Zusätzliche Hinweise
- Terminal, Editor oder Schriftart müssen die ausgewählten Zeichen unterstützen, damit sie wie beabsichtigt dargestellt werden. Wenn die Ausgabe als Kästchen oder Fragezeichen erscheint, prüfen Sie die Anzeigeumgebung; die Zeichenfolge kann trotzdem die gewünschten Zeichen enthalten.
- Sehen Sie in einer Unicode-Zeichenübersicht nach, wenn Sie einen Codepoint oder Zeichennamen benötigen. Achten Sie darauf, dass Anzahl und Schreibweise der Hexadezimalziffern stimmen: vier Ziffern nach
\uoder acht nach\U. - Sie können sichtbare Unicode-Zeichen auch direkt in eine Python-Quelldatei eingeben, sofern die Datei und die Bearbeitungsumgebung sie korrekt speichern.
Fazit
Verwenden Sie Escape-Sequenzen, wenn Sie die hexadezimalen Codepoints kennen, chr(), wenn Ihr Code Ganzzahlen enthält, und unicodedata.lookup(), wenn Ihnen die Unicode-Namen vorliegen. Alle drei Ansätze erzeugen gewöhnliche Python-Zeichenfolgen, die print() ausgeben kann.