日本語文字列を1文字ずつ
以前作成した日本語を1文字ずつに分解して処理するプログラムが、よその環境に移植したら誤動作していた。いろいろ粗探しをした結果、文字コード依存の処理になっていたのが原因だった模様。初歩的ミス。
今回のミスはこんな風に生まれました。
- CentOSでプログラム作成、動作確認。作成時の文字コードはEUC-JP。1文字切り出しは全て2バイトで区切ればよいと仮定。これがまずかった。
- Cygwin ( Windows XP )、gOSと移植を試みるも、いずれも失敗。原因特定開始。
- gOSはシステムのデフォルトがUTF-8みたいなので、ソースの文字コードをUTF-8に統一し、1文字切り出しを3バイトずつに変更したところ動作確認がとれた。急場しのぎだがまあよしとする。
- Cygwinの方は未だ手をつけず。SJISなら2バイトであってると思うので、ソースの文字コードを統一してみるとか。
日本語処理ってめんどくさいので、各社意地張らずにEUCかUTFあたりに統一してくれればいいのに。