UnicodeEncodeError: ‘cp932’ codec can’t encode character エラー対応

Pythonでスクレイピングをしたhtmlデータをローカルに保存する際に以下のエラーが発生した時の対処法。

UnicodeEncodeError: ‘cp932’ codec can’t encode character ‘\xa9’ in position 42041: illegal multibyte sequence

原因はPCがwindowsであり、cp932とは、マイクロソフトがShift_JISを独自に拡張した文字コード。上記エラーは次のコードを指していた。

f.write(dl.text)

原因を突き詰めると、ファイルを開く際に、UTF-8 でエンコードでの記述設定をする必要があり以下の通り、encoding=”utf-8_sig”を付け足すことで解決が可能(一例)

f = open(filename, mode=”w”, encoding=”utf-8_sig”)

Check Also

python

Pythonメモ:Windowsでファイル操作(Path指定時)でのエラー対応

相対Pathはうまくできたのに …