Warum erhalte ich beim Lesen einer Datei in Python die Meldung „UnicodeDecodeError: Der Codec „utf-8' kann Byte 0xff nicht dekodieren...'?

Susan Sarandon
Freigeben: 2024-11-04 07:34:02
Original
440 Leute haben es durchsucht

Why am I getting

Wie behebe ich „Fehler UnicodeDecodeError: ‚utf-8‘-Codec kann Byte 0xff in Position 0 nicht dekodieren: ungültiges Startbyte“?

Dieser Fehler kann in Python auftreten, wenn versucht wird, Byte-Array-Daten mithilfe der UTF-8-Kodierung in einen Unicode-String zu konvertieren, die Bytesequenz jedoch gemäß den UTF-8-Regeln ungültig ist.

Die Grundursache In diesem Fall interpretiert Python den Dateiinhalt während des Lesevorgangs als utf-8-codierte Zeichenfolge. Allerdings kann die Datei Nicht-UTF-8-Zeichen enthalten, z. B. eine Bytesequenz (z. B. 0xff), die kein gültiges Startbyte in UTF-8 ist.

Um diesen Fehler zu beheben, berücksichtigen Sie die Art von Ihre Datei und wenden Sie die folgende Lösung an:

Lösung:

Da es sich bei der Datei wahrscheinlich um eine Binärdatei handelt, sollten Sie sie als solche behandeln. Ändern Sie den Code zum Lesen der Datei, um „rb“ als Öffnungsmodus zu verwenden, wie unten gezeigt:

<code class="python">with open(path, 'rb') as f:
  contents = f.read()</code>
Nach dem Login kopieren

Durch Angabe von „rb“ wird die Datei im Binärmodus geöffnet, wobei die Bytes als Bytes und nicht als Bytes beibehalten werden Sie werden als UTF-8-kodierte Zeichen interpretiert. Dadurch wird verhindert, dass Python versucht, die ungültige Bytesequenz zu dekodieren, und die Ausnahme wird vermieden.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich beim Lesen einer Datei in Python die Meldung „UnicodeDecodeError: Der Codec „utf-8' kann Byte 0xff nicht dekodieren...'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!