UnicodeDecodeError: Invalid Continuation Byte
「utf-8」コーデックを使用して文字列をデコードしようとすると、エラー「UnicodeDecodeError: '」 utf8' コーデックはバイト 0xe9 をデコードできません...」というメッセージが表示される場合があります。これは、文字列内に無効な継続バイトがあることを示します。
提供されたコード スニペット内:
o = "a test of \xe9 char" v = o.decode("utf-8")
文字列「a test of xe9 char」には、バイト xe9 で表される文字が含まれています。このバイトは UTF-8 シーケンスの有効な継続バイトではないため、「utf-8」コーデックではデコードできません。
ただし、代わりに「latin-1」コーデックを使用すると、デコードは成功します。
v = o.decode("latin-1")
これは、「latin-1」コーデックが xe9 を文字の一部としてではなく、シングルバイト文字として解釈するためです。 UTF-8 シーケンス。その結果、文字列は UnicodeDecodeError が発生することなく文字列のままになります。
以上が`latin-1` は成功するのに、`\\xe9` では `utf-8` デコードが失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。