半角←→全角変換,Unicode::Japanese に未公開機能が…

2008-10-21 追記

いまだに(ありがたいことですが)検索で飛んできたりブクマされたりというのがちょいちょいあるので,最新動向を書いておきます。

id:tokuhirom さんが Lingua::JA::Regular::Unicode という Pure Perl Module をリリースなさいました(→ http://d.hatena.ne.jp/tokuhirom/20081018/1224300947)。

あなたが作っているアプリで文字列まわりを Unicode::Japanese インスタンスですべて持ちたいわけでなければ(そして,たいていのばあい,持つ必要はないのですが),この Lingua::JA::Regular::Unicode を使うのがベターです。依存性もなく,とても軽量ですので。

2008-10-21 追記おわり


ウェブアプリを作っていると,ユーザが入力した半角カナを全角カナに直したいなどのニーズがでてきます。昔なつかしの jcode.pl ではそのような用途として h2z や z2h という関数がありました。関数名とはうらはらに,半角カナについてのみ全角半角変換を行ってくれるものでした。

時はすすんで,今 Perl 5.8 でウェブアプリを書くとすれば,日本語変換に使うのはたいてい Encode モジュールでしょう。しかし Encode モジュールには全角半角変換機能はありません。それだけのために Jcode.pm の h2z を使うのもなぁ…という感じです。しかも Jcode.pm の h2z は,一度 EUC コードに変換してから全角半角変換してるんで,そこも嫌な感じ(元の jcode.pl がそういう仕様だったので仕方ないといえば仕方ないんですが)


さて,半角カナ→全角カナには何を使えばいいのか。

続きを読む