Python の UTF-8 デコードにおける UnicodeDecodeError のトラブルシューティング
エラー「UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff」が発生する「位置 0: 無効な開始バイト」は、Python がUTF-8 を使用してバイト シーケンスをデコードしようとしましたが、無効な開始バイトが発生しました。これは、UTF-8 でエンコードされた文字列であると想定されるバイト配列に、UTF-8 エンコード外の文字が含まれている場合に発生します。
エラーの原因
提供された例では、open(path).read() を使用してファイルを開くと、デコードの試行がトリガーされます。ファイルには UTF-8 に準拠していないバイトが含まれているため、デコード プロセスが失敗し、エラーが発生します。
解決策
この問題を解決するには、次のことが不可欠です。ファイルをテキスト ファイルではなくバイナリとして扱います。これにより、Python がバイトを UTF-8 文字列としてデコードしようとするのを防ぎます。
「rb」モードでファイルを開くようにコードを変更することで、Python にファイルをバイナリとして読み取るように強制します。
<code class="python">with open(path, 'rb') as f: contents = f.read()</code>
mode 引数に「b」を指定すると、ファイルをバイナリ ストリームとして扱うように Python に指示され、コンテンツが確実にバイナリ ストリームとして扱われます。バイトオブジェクト。デコードは試行されません。
以上がPython でファイルをデコードすると、「UnicodeDecodeError: \'utf-8\' codec can\'t decode byte 0xff in Position 0:無効な開始バイト」が表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。