「エラー UnicodeDecodeError: 'utf-8' コーデックは位置 0 のバイト 0xff をデコードできません: 無効な開始バイト」を解決する方法?
Python でこのエラーが発生するのは、utf-8 エンコーディングを使用してバイト配列データを Unicode 文字列に変換しようとしたときに発生する可能性がありますが、バイト シーケンスは utf-8 ルールに従って無効です。
根本的な原因この場合、Python は読み取り操作中にファイルの内容を utf-8 でエンコードされた文字列として解釈します。ただし、ファイルには、utf-8 の有効な開始バイトではないバイト シーケンス (0xff など) など、utf-8 以外の文字が含まれている可能性があります。
このエラーを解決するには、次の性質を考慮してください。ファイルを開き、次の解決策を適用します:
解決策:
ファイルはバイナリ ファイルである可能性が高いため、バイナリ ファイルとして扱う必要があります。以下に示すように、オープン モードとして「rb」を使用するようにファイル読み取りコードを変更します。
<code class="python">with open(path, 'rb') as f: contents = f.read()</code>
「rb」を指定すると、ファイルはバイナリ モードで開かれ、バイナリ モードではなくバイトとして保存されます。それらを utf-8 でエンコードされた文字として解釈します。これにより、Python が無効なバイト シーケンスをデコードしようとすることがなくなり、例外が回避されます。
以上がPython でファイルを読み取るときに「UnicodeDecodeError: \'utf-8\' codec can\'t decode byte 0xff...」というメッセージが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。