日々精進

新しく学んだことを書き留めていきます

PythonでJISコードを文字に変換すると意図した文字にならない

↓の文字コード表では、JISコードの0x2422は「あ」という文字に対応している。

ash.jp

以下によると、JISコードとは「ISO-2022-JP」の別名

ja.wikipedia.org

以下によると、「ISO-2022-JP」に変換するにはiso2022_jpを指定すればいいように見える。

docs.python.org

上記より、以下を実行すると「あ」になるように思えるがそうならない。

bytes([0x24, 0x22]).decode('iso2022_jp') #=> 「あ」になってほしいが「$"」になる

asciiコードで0x24と0x22はそれぞれ$と"なので、1バイト文字として認識されているようだがなぜそうなるかがわからない。。 結局はJISコードをテキストに出力し、エクセルに読み込ませてCHAR()関数を使って文字に変換した。 謎な挙動だ。。