Ich möchte ein Wörterbuch erstellen, in dem englische Wörter auf russische und französische Übersetzungen verweisen.
Wie drucke ich Unicode-Zeichen in Python aus? Wie speichert man Unicode-Zeichen in einer Variablen?
python
python-unicode
NoobDev4iPhone
quelle
quelle
u
kann Python sie als Unicode-Zeichenfolgenliterale betrachten.Antworten:
Um Unicode-Zeichen in Ihren Python-Quellcode aufzunehmen, können Sie Unicode-Escape-Zeichen im Formular
\u0123
in Ihrer Zeichenfolge verwenden und dem Zeichenfolgenliteral 'u' voranstellen.Hier ist ein Beispiel, das in der interaktiven Python-Konsole ausgeführt wird:
So deklarierte Zeichenfolgen sind Variablen vom Typ Unicode, wie in der Python Unicode-Dokumentation beschrieben .
Wenn das Ausführen des obigen Befehls den Text für Sie nicht korrekt anzeigt, kann Ihr Terminal möglicherweise keine Unicode-Zeichen anzeigen.
Informationen zum Lesen von Unicode-Daten aus einer Datei finden Sie in dieser Antwort:
Lesen von Zeichen aus einer Datei in Python
quelle
mystr
? wie drucke ich es dann aus?print your_unicode_characters.encode('utf-8')
Drucken Sie ein Unicode-Zeichen in Python:
Drucken Sie ein Unicode-Zeichen direkt vom Python-Interpreter:
Das Unicode-Zeichen
u'\u2713'
ist ein Häkchen. Der Dolmetscher druckt das Häkchen auf dem Bildschirm.Drucken Sie ein Unicode-Zeichen aus einem Python-Skript:
Setzen Sie dies in test.py:
Führen Sie es so aus:
Wenn für Sie kein Häkchen angezeigt wird, liegt das Problem möglicherweise an einer anderen Stelle, z. B. bei den Terminaleinstellungen oder bei der Stream-Umleitung.
Speichern Sie Unicode-Zeichen in einer Datei:
Speichern Sie dies in der Datei: foo.py:
Führen Sie es aus und leiten Sie die Ausgabe an die Datei weiter:
Öffnen Sie tmp.txt und schauen Sie hinein. Sie sehen Folgendes:
Sie haben also Unicode e mit einem Verschleierungszeichen in einer Datei gespeichert.
quelle
Wenn Sie versuchen,
print()
Unicode zu verwenden, und ASCII-Codec-Fehler erhalten , lesen Sie diese Seite , deren TLDRexport PYTHONIOENCODING=UTF-8
vor dem Starten von Python ausgeführt wird (diese Variable steuert, in welcher Bytefolge die Konsole versucht, Ihre Zeichenfolgendaten zu codieren). Intern verwendet Python3 standardmäßig UTF-8 (siehe Unicode-HOWTO)) das ist also nicht das Problem; Sie können Unicode einfach in Zeichenfolgen einfügen, wie in den anderen Antworten und Kommentaren zu sehen ist. Wenn Sie versuchen, diese Daten an Ihre Konsole zu übertragen, tritt das Problem auf. Python glaubt, dass Ihre Konsole nur ASCII verarbeiten kann. Einige der anderen Antworten sagen: "Schreiben Sie es zuerst in eine Datei", beachten Sie jedoch, dass sie die Codierung (UTF-8) dafür angeben (Python ändert also nichts schriftlich) und verwenden dann eine Methode zum Lesen Die Datei, die nur die Bytes ausspuckt, ohne Rücksicht auf die Codierung, weshalb dies funktioniert.quelle
In Python 2 deklarieren Sie Unicode-Zeichenfolgen mit einem
u
, wie inu"猫"
und verwendendecode()
undencode()
um in bzw. aus Unicode zu übersetzen.In Python 3 ist es viel einfacher. Eine sehr gute Übersicht finden Sie hier . Diese Präsentation hat mir viele Dinge klargestellt.
quelle
In Anbetracht der Tatsache, dass dies das erste Stapelüberlaufergebnis bei der Google-Suche in diesem Thema ist, muss erwähnt werden, dass das Präfixieren
u
von Unicode-Zeichenfolgen in Python 3 optional ist. (Python 2-Beispiel wurde aus der oberen Antwort kopiert.)Python 3 (beide funktionieren):
Python 2:
quelle
Ich verwende Portable Winpython in Windows, es enthält IPython QT-Konsole, ich könnte Folgendes erreichen.
Ihr Konsoleninterpreter sollte Unicode unterstützen, um Unicode-Zeichen anzuzeigen.
quelle
Nur noch eine Sache, die noch nicht hinzugefügt wurde
Wenn Sie in Python 2 eine Variable mit Unicode drucken und verwenden möchten
.format()
, gehen Sie folgendermaßen vor: Machen Sie die zu formatierende Basiszeichenfolge zu einer Unicode-Zeichenfolge mitu''
:quelle
Dies behebt den UTF-8-Druck in Python:
quelle
Ersetzen Sie '+' durch '000' . Beispielsweise wird 'U + 1F600' zu 'U0001F600' und stellt dem Unicode-Code "\" voran und druckt. Beispiel:
Überprüfen Sie dies, vielleicht hilft es Python Unicode Emoji
quelle