ホームページ > バックエンド開発 > Python チュートリアル > 非 ASCII 文字を含む文字列をデコードすると「UnicodeDecodeError: 無効な継続バイト」が発生するのはなぜですか?

非 ASCII 文字を含む文字列をデコードすると「UnicodeDecodeError: 無効な継続バイト」が発生するのはなぜですか?

Patricia Arquette
リリース: 2024-11-26 11:20:09
オリジナル
132 人が閲覧しました

Why Does Decoding a String with Non-ASCII Characters Result in a

デコード エラー: "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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート