UnicodeDecodeError: 'utf-8' codec can't decode byte
Pythonでファイルの文字エンコーディングが不正な場合に発生するエラー
概要
UnicodeDecodeError は、Pythonでファイルや文字列を読み込む際に、指定したエンコーディングでデコードできない場合に発生するエラーです。
エラーメッセージ
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x93 in position 0: invalid start byte
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 5: ordinal not in range(128)
UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 100: character maps to <undefined>
原因
1. ファイルのエンコーディングが異なる
| |
2. バイナリファイルをテキストとして読み込み
| |
3. 古いWindows環境のファイル
Windows環境で作成されたファイルがCP932(Shift_JIS)エンコーディングの場合。
解決策
1. 正しいエンコーディングを指定
| |
2. エンコーディングを自動検出
| |
3. エラーを無視または置換
| |
4. バイナリモードで読み込み
| |
5. Pandasでの読み込み
| |
6. Webリクエストの場合
| |
よく使うエンコーディング
| エンコーディング | 用途 |
|---|---|
| utf-8 | 標準、多言語対応 |
| cp932, shift_jis | 日本語Windows |
| euc-jp | 日本語Unix |
| latin-1, iso-8859-1 | 西欧言語 |
| utf-16 | Windowsの一部ファイル |
関連エラー
関連エラー
Python の他のエラー
この記事は役に立ちましたか?