デコード エラー: "UnicodeDecodeError、無効な継続バイト"
UTF-8 を使用して非 ASCII 文字を含む文字列をデコードしようとしたときコーデックを使用すると、「UnicodeDecodeError: 無効な継続バイト」エラーが発生する場合があります。このエラーは、文字列に有効な UTF-8 継続バイトではないバイト シーケンスが含まれていることを示します。
提供される具体的な例では、
o = "a test of \xe9 char" v = o.decode("utf-8")
文字列 o には、非 ASCII 文字 xe9 (é)。 UTF-8 コーデックを使用してデコードしようとすると、xe9 が無効な UTF-8 継続バイトであるため、前述のエラーで失敗します。
解決策
解決策文字列内の非 ASCII 文字を処理できる別のコーデックを使用することです。この場合、Latin-1 コーデックを使用できます。これは、é:
v = o.decode("latin-1")
説明
のようなアクセント付き文字を含む西ヨーロッパ文字を処理するように設計されています。 latin-1 コーデックは、英語のアルファベットの文字、アクセント付き文字、および一部の文字を含む 256 文字を含むシングルバイト文字セットです。句読点。これは、西ヨーロッパ言語のテキストをエンコードするためによく使用されます。
latin-1 コーデックを使用すると、「UnicodeDecodeError」例外が発生することなく、文字列 o を正常にデコードできます。
以上が非 ASCII 文字を含む文字列をデコードすると「UnicodeDecodeError: 無効な継続バイト」が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。