Ich versuche ein spanisches Zeichen in Strings im interaktiven Modus einzugeben. Zum Beispiel option+e e
zu produzieren "é", so dass ich eine Aussage wie string="él"
machen. Dies funktioniert im Terminal, aber in Python (jede Version, die ich installiert habe, von denen ich mehrere habe) tut es nicht. Es produziert einfach nichts. Dazu gehört auch das Einfügen der Zeichen. Es ist genau das Problem, das in this question beschrieben wird, speziell der Teil über das Einfügen und in seinem Kommentar zu Alex 'Frage, wo er darauf hinweist, dass Alex' Antwort nicht die Frage des Versagens von Copy/Paste in Bezug auf utf-8 Charakteren behandelt. Wie kann ich das machen?Eingabe von utf-8 Zeichen in Python im interaktiven Modus unter OS-X
Antwort
Verwenden Sie u
vor dem Zeichenfolgenliteral, um es zu einer Unicode-Zeichenfolge zu machen.
string = u"El avión cayó del cielo"
wenn das nicht das Problem arbeiten liegt in einem Editor oder Terminal, versuchen Sie in diesem Fall
#coding: utf8
in einen der ersten zwei Zeilen Ihres Python-Programm hinzufügen und einen geeigneten Editor mit Unicode verwenden Unterstützung.
Der erste Vorschlag funktioniert nicht, ich kann das Zeichen überhaupt nicht in den Interpreter eingeben.Ich bin mir nicht sicher, was du im zweiten Vorschlag meinst. Ich verwende die Terminal-App, die mit OS-X geliefert wird, und ich kann die Zeichen in der Shell eingeben, aber nicht in Python im interaktiven Modus. Ich habe meine Standardcodierung bereits in "sitecustomize.py" auf "utf-8" geändert. –
Es wird nicht empfohlen, das Standard-Codierungssystem zu ändern, da dadurch einige Bibliotheken beschädigt werden können. – KurzedMetal
** Ändern Sie nicht die Standardcodierung. Was bedeutet 'sys importieren; print (sys.stdout.encoding) 'sag? –
Die readline
-Bibliothek, die Python verwendet, um interaktive Eingabe zu lesen, akzeptiert keine ASCII-Zeichen, die vom Terminal gesendet werden. Dies bedeutet, dass entweder Ihr Terminalemulator die Zeichen in der UTF-8-Codierung nicht bereitstellt oder readline nicht für die Annahme von UTF-8-Eingaben konfiguriert ist.
Glücklicherweise wird readline von vielen populären Programmen verwendet, einschließlich der bash
Shell, so dass es viele Informationen gibt, wie es funktioniert. Zum Beispiel from this article:
Wie erhalte ich UTF-8-Eingang richtig zu arbeiten?
- In dem Terminal Inspector:
- im Emulations-Abschnitt, die Escape-Nicht-ASCII-Zeichen Option deaktivieren.
- Wählen Sie im Abschnitt Anzeige Unicode (UTF-8) als die Zeichensatzkodierung.
Fügen Sie die folgende Zeile in
.profile:
export LC_CTYPE=en_US.UTF-8
Fügen Sie die folgenden Zeilen zu Ihrer
.inputrc
:set meta-flag on set input-meta on set output-meta on set convert-meta off
Änderungen übernehmen, indem Sie eine
source ~/.profile
undsource ~/.inputrc
tun.
Dies löst dieses Problem leider auch nicht – Rmatt
- 1. Patch: im nicht interaktiven Modus
- 2. Python: ignorieren führenden ">>>" und "..." im interaktiven Modus?
- 3. Kann ich im interaktiven Modus auf sys.argv in Python zugreifen?
- 4. Wie mache ich im interaktiven Python-Modus True = False rückgängig?
- 5. Machen Sie Emacs verwenden UTF-8 mit Python interaktiven Modus
- 6. Force funktioniert nicht im nicht interaktiven Modus
- 7. wie in PHP interaktiven Modus
- 8. sys.argv unterscheidet sich im interaktiven Modus in Ipython
- 9. MAMP php interaktiven Modus gebrochen?
- 10. Making Python Interaktiven Modus von Emacs Highlight und Indent
- 11. Umgang mit utf8 codierten Zeichen in HTML-Eingabe-Tag
- 12. Drucken Sie Scala Arbeitsblatt Ergebnisse im interaktiven Modus in IntelliJ
- 13. Python Hol Docstring, ohne in den Interaktiven Modus zu wechseln
- 14. starten interaktiven Modus auf einer bestimmten Skriptzeile
- 15. PHP preg_split utf8 Zeichen
- 16. Wie erzwingeffmpeg in den nicht interaktiven Modus?
- 17. kann nicht Docker-Container auf Kubernetes im interaktiven Modus
- 18. entfernen 4-Byte-Zeichen UTF8
- 19. Testen von interaktiven Python-Programmen
- 20. Datei löschen von Desktop im Single-User-Modus osx
- 21. So erkennen Sie den abgesicherten Modus unter OSX
- 22. gute Idee, Python zu ändern, um Continue-Anweisung im interaktiven Modus zu akzeptieren?
- 23. Read UTF8 Zeichen in req.path mit Express.JS im Knoten
- 24. ‚git stash gelten‘ mit interaktiven Modus
- 25. Installieren von GLFW unter OSX
- 26. java UTF8 - Zeichen, String-Typen
- 27. Python: Debuggen mit gdb (unter OSX)
- 28. Im Python-Debugger pdb, wie verlassen Sie den interaktiven Modus, ohne die Debug-Sitzung beendet
- 29. Unterstützt [und] Zeichen im PDU-Modus
- 30. Python os.getenv unter OSX (Django 1.4)
Was genau meinen Sie mit "dem Python-Interpreter"? Ich greife auf die Python-Shell * über das Terminal zu - wie machst du das? –
Ich denke, ich meinte interaktiven Modus. Die Frage wurde geändert. –
Das beantwortet meine Frage nicht. Wie kommst du zu diesem Ding, das du "interaktiver Modus" nennst? –