■ はじめに
Python で 文字コード関連のエラーを纏めておく。
目次
【1】デコード時にエラー「UnicodeDecodeError」で落ちる
【1】デコード時にエラー「UnicodeDecodeError」で落ちる
以下のコードから例外エラー「UnicodeDecodeError」で落ちる
コード一部
result = target.decode('windows-1252') # ここで落ちる
エラー内容
UnicodeDecodeError: 'charmap' codec can't decode byte 0x8e in position 6567: character maps to <undefined>
補足説明
* 'charmap' は、設定した設定したデフォルトエンコーディング * '0x8e ' は、デコードできなかった文字バイト * '6567' は、先頭からの文字数
!! 個人的なメモ !!
Notepad++ で [Search]-[Go to...]で[Offset]を選択し、 指定文字数(今回「6567」)を入れ「Go」ボタン押下で 落ちた場所に飛んで解析できた
原因
同様な現象の方がいて、助かった。 Windows-1252 でデコードしようとしたら、 Windows-1252にはない文字コード(今回は「0x8e」)だったので落ちた。
より抜粋 ~~~~~ https://en.wikipedia.org/wiki/Windows-1252 からわかるように、 コード0x9DはCP1252で定義されていません。 ~~~~~
補足:文字コード「0x8e」について
0x8e : BPH = Break Permitted Here(分割許可)
https://seiai.ed.jp/sys/text/csd/mcodes/ucodectrl.html
http://ash.jp/code/ctrltbl.htm
参考文献
https://qiita.com/khsk/items/e3c36ac2acdf0fda3e35
関連記事
Python ~ 基本編 / ファイル読込・書込 ~
https://dk521123.hatenablog.com/entry/2019/10/07/000000
文字コードの自動判別 ~ chardet ~
https://dk521123.hatenablog.com/entry/2020/06/16/000000