Macで作成したPythonプログラム。
Windows環境で実行すると「’cp932′ codec can’t encode character」というエラーが出て止まってしまう。Macではエラーは出なかったのに。
その原因と解消方法を紹介します。
エラーが発生した原因
「’cp932′ codec can’t encode character」というエラーですが、これはcp932という文字コードで扱えない文字があるために発生するエラーです。
cp932とは、いわゆる日本語 (シフト JIS) です。
デフォルトエンコードがMacではUTF-8で、WindowsはShift-JISです。
この違いのためMacで発生しなかったエラーがWindowsで発生したのです。
「’cp932′ codec can’t encode character」は、UTF-8では扱えるがShift-JISでは扱えない文字があった場合に発生します。
エラーが発生していた箇所
path_w = File_name
with open(path_w, mode=’a’) as f:
f.write(Variable_name)
「with open(path_w, mode=’a’) as f:」の行です。
ファイル「File_name」を追記書き込みモード開いて変数「Variable_name」の内容をファイルに追記書き込みするというコードです。
この中でエンコードの指定をしていなかったためにエラーが発生しました。
エラー解消方法
open関数でエンコード「encoding=’UTF-8’」を指定します。
path_w = File_name
with open(path_w, mode=’a’, encoding=’UTF-8′) as f:
f.write(Variable_name)
これでUTF-8で書き込みをするためエラーは発生しなくなります。
コメント