この2日間*1ほど、EUC-JPなデータおよびスクリプトをUTF-8なものに変更する作業などしていたわけで。 EUC-JPと言っても、実際には丸付き数字とかそういうのが山ほど入っている、綺麗とはいえない内容で。これをつつがなくUTF-8に変更するのに一苦労。 過去にこの辺を書いたおかげで、それに気が付くのに時間はかからなかったけど、それでもJcode.pmとEncode.pmの挙動の違い(というか、使い勝手の違い)には泣かされた。 おまけに、元のスクリプト、use strictもやってなかったりする、いい加減古いものだったりしたし。 ということで、はまった内容をメモっておくことにする。 先に結論だけ書いておくと 機種依存文字が入っているときは、EUCJPMSとCP932が必須 入力はすべてdecodeして、処理したら全てencodeして出力。内部コードは絶対に内部にとどめる。 少なくとも1