Eine echte Möglichkeit für Benutzer von Python 3.8.0-2 aus Windows, mit Multi-Byte-Zeichen zu arbeiten

Erste Schlussfolgerung

--Starten Sie mit python -X utf8 --Wenn dies nicht funktioniert, setzen Sie die Umgebungsvariable und den Variablennamen PYTHONIOENCODING und den Wert utf-8.

zunaechst

"Dieser Artikel wurde für Benutzer geschrieben, die Python3.8.0 bis Python3.8.2 unter Windows verwenden. Ich weiß nichts über Python3.7 oder früher oder neuer als Python3.8.2. "" Ich wage es, es so zu erklären.

Bis Sie zu diesem Artikel kommen

  1. Versuchen Sie beispielsweise, "http.server" oder etwas anderes auszuführen
  2. Von UnicodeDecodeError gemobbt werden
  3. Führen Sie sys.stdout = io.TextIOWrapper (sys.stdout.buffer, encoding = 'utf-8') und aus
  4. Der Compiler schalt mich, dass "das Attribut" Puffer "nicht existiert (in" sys.stdout ")".
  5. Ich habe nach den folgenden Informationen gesucht, konnte sie jedoch nicht leicht finden

Ist es nicht? Anscheinend ** sys.stdout.buffer scheint von 3.8 ** (?) veraltet zu sein. auf diesen Beweisen, Wenn Sie Leute fragen, die auf diese Weise arbeiten, sagen sie 3.7 oder früher, und wenn Sie Leute fragen, die auf diese Weise versagen, sagen sie 3.8. (Es kann ein Zufall sein, weil ich es nicht richtig untersucht habe. Es tut mir leid, wenn dies der Fall ist.)

Es ist verwirrend, weil die Informationen älter als 3.8 "für 3.x" oder "für 3" lauten. Zu der Zeit, als 3.6 und 3.7 die neuesten waren, dachte ich nicht, dass sich die Spezifikationen mit 3.8 ändern würden, also scheint es, dass es verallgemeinert wurde. Von nun an möchte ich, dass Sie etwas wie "für Python3.0-3.7" sagen, anstatt "für Python3".

Warum Sie eine Fehlermeldung erhalten

Laut https://qiita.com/butada/items/33db39ced989c2ebf644 besteht die Standardausgabe aus shift_jis in Windows 10 und früheren Versionen. Wenn Sie python3.8.2 oder früher unter Windows ausführen, wird ** unabhängig vom Zeichencode in Python zum Zeitpunkt der Ausgabe automatisch in shift_jis konvertiert **. Während dieses Vorgangs tritt ein Fehler auf. (Übrigens ist in python3 ~ 3.8.2 der Zeichencode vom Typ str auf utf-8 festgelegt. Es gab auch ein Schwarzes Brett, das " # encoding: utf-8 "vorschlug, aber dies ist die Spezifikation der Quellcodierung.

Lösung

Wenn Sie in Python3.7-3.8.2 "Python" von der Konsole aus starten, können Sie es im "UTF-8-Modus" starten, indem Sie die Option "-X utf8" hinzufügen. Hier wird die Nachahmung wie "automatisch in shift_jis konvertieren" gestoppt.

・ Wenn Sie http.server verwenden möchten, reicht dies übrigens nicht aus. Setzen Sie die Umgebungsvariable auf den Variablennamen PYTHONIOENCODING und den Wert utf-8.

Recommended Posts

Eine echte Möglichkeit für Benutzer von Python 3.8.0-2 aus Windows, mit Multi-Byte-Zeichen zu arbeiten
Vom Aufbau einer Python-Umgebung für unerfahrene Personen bis zur Hello-Welt
Von der Vorbereitung der morphologischen Analyse mit Python unter Verwendung von Polyglot bis zur Teilwortmarkierung
Erstellen Sie mit Mecab aus Python3 ein Tool, das Furigana automatisch mit HTML schüttelt
Erstellen Sie mit Pybind11 eine Umgebung zum Ausführen von C ++ - Funktionen aus Python (für Benutzer von Windows- und Visual Studio-Code).
Auf der Suche nach einer effizienten Möglichkeit, eine Docker-Datei mit Python mit Gedichten zu schreiben
Einfache Möglichkeit, mit Google Colab mit Python zu kratzen
Ich möchte mit einem Roboter in Python arbeiten.
Vom Kauf eines Computers bis zur Ausführung eines Programms auf Python
Ich möchte Leuten sagen, die mit Python direnv aus einem höheren Verzeichnis importieren möchten
Konvertieren Sie mit Python für .NET von Pandas DataFrame in System.Data.DataTable
[Linux] Kopieren Sie Daten mit einem Shell-Skript von Linux nach Windows
Wahrscheinlich der einfachste Weg, um mit Python 3 ein PDF zu erstellen
Experimentieren Sie mit Python, um ein PDF für Selbstversorger für Kindle zu erstellen
Eine einfache Möglichkeit, mehrere for-Schleifen in Python zu vermeiden
Einführung in Python für VBA-Benutzer - Aufrufen von Python aus Excel mit xlwings-
Verwenden von Rstan aus Python mit PypeR
Python OCR System Erhöhen Sie Zeichen aus Bildern, um die Arbeitseffizienz zu verbessern
Was tun, wenn Python unter Git für Windows nicht funktioniert?
Erstellen einer Windows 7-Umgebung für eine Einführung in das maschinelle Lernen mit Python
Versuchen Sie, mit Python3 eine Zeichenfolge aus einem Bild zu extrahieren
Der einfachste Weg, um eine Spleeter-Nutzungsumgebung unter Windows zu erstellen
Ich habe versucht, eine ToDo-App mit einer Flasche mit Python zu erstellen
[Hinweis] Verwenden eines 16x2-stelligen LCD-Zeichens (1602A) von Python mit Raspeye
Übergeben Sie die Liste von Python an C ++ als Referenz in pybind11
[Python] Versuchen Sie, Zeichen aus Bildern mit OpenCV und pyocr zu erkennen
Alles vom Erstellen einer Python-Umgebung bis zur Ausführung unter Windows
[Einführung in die Udemy Python3 + -Anwendung] 47. Verarbeiten Sie das Wörterbuch mit einer for-Anweisung
Umgang mit OAuth2-Fehlern bei Verwendung von Google APIs aus Python
Ich habe mir eine Möglichkeit ausgedacht, aus einem Foto ein 3D-Modell zu erstellen.
Vorgehensweise zum Erstellen einer virtuellen Python-Umgebung mit VS-Code unter Windows
So erhalten Sie den Wert aus dem Parameterspeicher in Lambda (mit Python)
Ein Python-Skript für Mac, das unter Windows ohne verstümmelte Zeichen komprimiert wird
Datenintegration von der Python-App unter Windows zu Amazon Redshift mit ODBC
Janken Poi mit Python Lassen Sie uns für Anfänger auf einem lokalen Windows-Server laufen
Hinweise zur Verwendung von OpenCV mit Windows 10 Python 3.8.3.
Memo, um nach KPI mit Python zu fragen
[50 zählt] Schlüsselübertragung mit Python für Windows
Geben Sie Farbzeichen mit Python zu hübsch aus
"Python AI Programmierung" ab 0 für Windows
# 5 [python3] Extrahiert Zeichen aus einer Zeichenfolge
Erstellen einer Python 3.6-Umgebung mit Windows + PowerShell
So arbeiten Sie mit BigQuery in Python
Tipps zur Verwendung von Python + Caffe mit TSUBAME
Python> Ausgaben von 1 bis 100, 501 bis 600> Für CSV
So betreiben Sie die Zeitstempelstation in Python
Aufrufbefehle von Python (Windows Edition)
Versuchen Sie, mit Talking Head Anime aus einem einzigen Bild zu verschönern [Python-Vorbereitung]
Hinweise von der Installation von Homebrew bis zum Erstellen einer Anaconda-Umgebung für Python mit pyenv
Pandas DataFrame mit nur 15 Zeichen auf den Kopf stellen, ohne for-Anweisung zu verwenden
Als ich versuchte, mit Python eine virtuelle Umgebung zu erstellen, funktionierte dies nicht
SSH-Anmeldung am Zielserver von Windows mit einem Klick auf eine Verknüpfung
WEB Scraping mit Python und versuchen, aus Bewertungen eine Wortwolke zu machen
Erstellen Sie eine lokale Entwicklungsumgebung mit WSL + Docker Desktop für Windows + Docker-Lambda + Python
[Einführung in Python] So erhalten Sie den Datenindex mit der for-Anweisung
Senden Sie eine Nachricht von Slack an einen Python-Server