Unicode Normalization

nkfUnicode 正規化を実装して欲しいという要望がどれだけあるのかはわからないし、実際に実装するとなると nkf のバイナリサイズがだいぶ増えるがネックとなる。けれども、一応勉強しておくのはいいだろうということで、とりあえず RubyUnicode 正規化を行うコードを再発明してみる。ここまでは楽だが、nkf に実装するとなると C 言語でやらないといけないわけで、テーブルをどう検索するかが悩み所。分解で 5000、合成で 2000 くらいなのでバイナリサーチでもいいかなぁと思ってしまうが、完全ハッシュ関数を使うのもアリかも。gperf だと文字列限定だけど、Radium さんで紹介されてたコードなら整数でもいけるし。