エンコード問題について

さて、冒頭に書いた「iconvによるエンコード問題」ですが、とりあえず全てに該当した方は、config.txtのclient_encodingの設定を、以下のように変更してください。

client_encoding:CP932

この問題は、Microsoftでサポートしていると言われている文字コードシフトJIS」が、実際には「Codepage932」という別の文字コードセットである、ということに起因しています。

詳しいことは省きますが、今回開発中にぶち当たった問題は、前回の日記でサンプルとして挙げた例そのものでした。自分の本家サイト、「http://www.glass-moon.jp/」を EUC-JP から Shift_JIS へ変換しようとしたら IllegalSequence 例外飛ばしやがんの。ほんとにそのまんま。もう泣きたい…。

つまり、iconv は EUC-JP→UCS2→Shift_JIS という、内部コードにUCS2を用いた変換を行っているんだけど、ここで EUC-JP から UCS2へ マップしたコードが Shift_JIS での変換時に変換テーブルにないコードなので「変換でき〜ん!」とiconvに怒られてしまうわけです。あ〜あ…。

なので、WindowsShift_JIS でツールを使っている人は CP932 と設定するようにしましょう、というか、してくださいお願い(泣)