UnicodeDecodeError: Ungültiges Fortsetzungsbyte
Beim Versuch, eine Zeichenfolge mit dem Codec „utf-8“ zu dekodieren, wird der Fehler „UnicodeDecodeError: ' „utf8“-Codec kann Byte 0xe9 nicht dekodieren ...“ kann auftreten. Dies weist auf ein ungültiges Fortsetzungsbyte in der Zeichenfolge hin.
Im bereitgestellten Codeausschnitt:
o = "a test of \xe9 char" v = o.decode("utf-8")
Die Zeichenfolge „a test of xe9 char“ enthält ein Zeichen, das durch das Byte xe9 dargestellt wird. Dieses Byte ist kein gültiges Fortsetzungsbyte in einer UTF-8-Sequenz, daher kann der „utf-8“-Codec es nicht dekodieren.
Wenn jedoch stattdessen der „latin-1“-Codec verwendet wird, gelingt die Dekodierung:
v = o.decode("latin-1")
Das liegt daran, dass der „Latin-1“-Codec xe9 als Einzelbyte-Zeichen und nicht als Teil eines UTF-8 interpretiert Reihenfolge. Folglich bleibt die Zeichenfolge eine Zeichenfolge, ohne dass der UnicodeDecodeError.
auftrittDas obige ist der detaillierte Inhalt vonWarum schlägt die Dekodierung von „utf-8' auf „\\xe9' fehl, während „latin-1' erfolgreich ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!