【トラブル】【Python】Pythonでの文字コード関連のトラブルシューティング

■ はじめに

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://www.it-swarm.dev/ja/python/%27%27-unicodedecodeerror%EF%BC%9A-%27charmap%27-codec%E3%81%AF%E4%BD%8D%E7%BD%AE29815%E3%81%AE%E3%83%90%E3%82%A4%E3%83%880x9d%E3%82%92%E3%83%87%E3%82%B3%E3%83%BC%E3%83%89%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%9B%E3%82%93%EF%BC%9A%E6%96%87%E5%AD%97%E3%83%9E%E3%83%83%E3%83%97%E3%82%92lt%E6%9C%AA%E5%AE%9A%E7%BE%A9gt%E3%81%AB%E4%BF%AE%E6%AD%A3%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F/837355179/

より抜粋
~~~~~
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