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>
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!