日本語文字列を1文字ずつ

以前作成した日本語を1文字ずつに分解して処理するプログラムが、よその環境に移植したら誤動作していた。いろいろ粗探しをした結果、文字コード依存の処理になっていたのが原因だった模様。初歩的ミス。
今回のミスはこんな風に生まれました。

  1. CentOSでプログラム作成、動作確認。作成時の文字コードEUC-JP。1文字切り出しは全て2バイトで区切ればよいと仮定。これがまずかった。
  2. Cygwin ( Windows XP )、gOSと移植を試みるも、いずれも失敗。原因特定開始。
  3. gOSはシステムのデフォルトがUTF-8みたいなので、ソースの文字コードUTF-8に統一し、1文字切り出しを3バイトずつに変更したところ動作確認がとれた。急場しのぎだがまあよしとする。
  4. Cygwinの方は未だ手をつけず。SJISなら2バイトであってると思うので、ソースの文字コードを統一してみるとか。

日本語処理ってめんどくさいので、各社意地張らずにEUCかUTFあたりに統一してくれればいいのに。