GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie löst man UnicodeDecodeError in Python 3.6?

Ich hatte dieses Problem, als ich Python in einem Docker-Container auf Basis von Ubuntu 18.04 verwendete. Es schien ein Gebietsschema-Problem zu sein, das durch Hinzufügen des Folgenden zur Docker-Datei gelöst wurde:

ENV LANG C.UTF-8

Es hört sich so an, als ob Ihr Gebietsschema defekt ist und ein weiteres Bytes->Unicode-Problem vorliegt . Das, was Sie für Python 2.7 gemacht haben, ist ein Hack, der das eigentliche Problem nur verschleiert hat (es gibt einen Grund, warum Sie reload sys damit es funktioniert).

Um Ihr Gebietsschema zu korrigieren, versuchen Sie, locale einzugeben von der Kommandozeile. Es sollte in etwa so aussehen:

LANG=en_GB.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_GB.UTF-8"
LC_TIME="en_GB.UTF-8"
LC_COLLATE="en_GB.UTF-8"
LC_MONETARY="en_GB.UTF-8"
LC_MESSAGES="en_GB.UTF-8"
LC_ALL=

locale hängt von LANG ab richtig eingestellt werden. Python verwendet effektiv locale um herauszufinden, welche Kodierung verwendet werden soll, wenn in stdout geschrieben wird. Wenn es nicht funktioniert, wird standardmäßig ASCII verwendet.

Sie sollten zuerst versuchen, Ihr Gebietsschema zu korrigieren. Wenn locale Fehler, vergewissern Sie sich, dass Sie das richtige Sprachpaket für Ihre Region installiert haben.

Wenn alles andere fehlschlägt, können Sie Python jederzeit reparieren, indem Sie PYTHONIOENCODING=UTF-8 setzen . Dies sollte als letzter Ausweg verwendet werden, da Sie erneut Probleme maskieren.

Wenn Python nach dem Setzen von PYTHONIOENCODING immer noch einen Fehler auslöst dann aktualisieren Sie bitte Ihre Frage mit dem Stacktrace. Es besteht die Möglichkeit, dass eine implizite Conversion stattfindet.


Linux
  1. So installieren Sie Python unter Linux

  2. So installieren Sie Python unter Linux Mint 20

  3. Gewusst wie:Socket-Programmierung in Python

  4. So installieren Sie Python 3.10 auf Rocky Linux 8

  5. So verfolgen Sie Python-Skripte mit trace.py

So kommentieren Sie in Python

So installieren Sie Python 3.7 unter Ubuntu 18.04

So überprüfen Sie die Python-Version

So führen Sie ein Python-Skript in PHP aus

So installieren Sie Python PIP unter Ubuntu 18.04

So verwenden Sie Sets in Python