Python の UTF-8 デコードでの UnicodeDecodeError のトラブルシューティング
「UnicodeDecodeError: 'utf-8' コーデックはバイト 0xff をデコードできません」というエラーが発生しました「位置 0: 無効な開始バイト」は、Python が UTF-8 を使用してバイト シーケンスをデコードしようとしているが、無効な開始バイトが発生したことを示します。これは、UTF-8 でエンコードされた文字列であると想定されるバイト配列に、UTF-8 エンコード外の文字が含まれている場合に発生します。
エラーの原因
提供された例では、open(path).read() を使用してファイルを開くと、デコードの試行がトリガーされます。ファイルには UTF-8 に準拠していないバイトが含まれているため、デコード プロセスが失敗し、エラーが発生します。
解決策
この問題を解決するには、次のことが不可欠です。ファイルをテキスト ファイルではなくバイナリとして扱います。これにより、Python がバイトを UTF-8 文字列としてデコードしようとするのを防ぎます。
「rb」モードでファイルを開くようにコードを変更することで、Python がファイルをバイナリとして読み取るように強制します。
with open(path, 'rb') as f:
contents = f.read()
mode 引数に 'b' を指定すると、ファイルをバイナリ ストリームとして扱うように Python に指示され、デコードを試行せずにコンテンツがバイト オブジェクトのままになることが保証されます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3