ホームページ >バックエンド開発 >Python チュートリアル >Python が「UnicodeDecodeError: 'ascii' codec can't decode byte」をスローする理由とその修正方法
Python の Unicode 処理、特に「UnicodeDecodeError: 'ascii' コーデックはバイトをデコードできません」例外。この問題は、元の文字列のエンコーディングを指定せずに、非 ASCII 文字を含む Python 2.x str を Unicode 文字列に変換しようとすると発生します。
Unicode 文字列について
Unicode 文字列は通常の Python 文字列とは異なり、さまざまな言語の広範囲の文字を表す Unicode ポイント コードを保持します。一方、文字列には、さまざまな形式 (UTF-8、UTF-16 など) でエンコードされたテキストが含まれます。文字列は Unicode にデコードされ、Unicode 文字列は文字列にエンコードされます。
「Unicode サンドイッチ」パターン
入力/デコード:
サンドイッチの肉:
出力:
Avoid sys.setdefaultencoding('utf8')
このハックは Unicode の問題をマスクするだけであり、デフォルトのエンコーディングが使用される Python 3.0 への移行を妨げる可能性があります。は UTF-8 です。
Python 3考慮事項
以上がPython が「UnicodeDecodeError: 'ascii' codec can't decode byte」をスローする理由とその修正方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。