エラー辞典

UnicodeDecodeError

文字コードの解釈に失敗したときに発生するエラーです。特に日本語を含むファイルの読み込みで起きやすいです。

原因

ファイルの文字コード(Shift-JISなど)と、読み込み時に指定した文字コード(UTF-8など)が一致していないことが原因です。

エラーになるコード例

with open('data.txt', 'r', encoding='utf-8') as f:
    print(f.read())
# data.txtがShift-JISで保存されている場合など
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8a in position 1

修正版

with open('data.txt', 'r', encoding='shift_jis') as f:
    print(f.read())

よくある間違い

  • Windowsで保存されたShift-JISファイルをUTF-8として読み込もうとする
  • ファイルのエンコーディングを確認せずに open() を使う

← エラー辞典に戻る