🐍
【Python】ファイル内でUTF8の日本語を扱う際に'cp932'のillegal multibyteがでる問題の対策
概要
下記のようなエラーが発生する
UnicodeDecodeError: 'cp932' codec can't decode byte 0x93 in position 282: illegal multibyte sequence
これはWindowsでUTF8のエンコードファイル内に日本語がある場合、Win側がShift-JIS (CP932)としてファイルを取り扱うためエラーが起きる。
ここでは、大本のソースコードを編集せずに修正する方法を記載する。
関連資料
-
Windows 上の Python で UTF-8 をデフォルトにする
- Pythonでファイルを開く際UTF8で開く方法を記載している
-
UnicodeDecodeError: 'cp932' codec can't decode byte 0xfc
- cp932でエンコードされていないファイルを開くと起きることを突き止めている
作業詳細
-
~/.bashrc
等に下記の環境変数export PYTHONUTF8=1
を定義する -
source ~/.bashrc
を実施し環境変数を読み込む - エラーとなったファイルを
python <マルチバイトエラーのファイル名>.py
で実行してエラーが発生しないか確認する
Discussion