たむらです。御相談。

えっと、rubyの標準拡張モジュールである nkf ですが、
1.7の nkf.c を includeして利用してます。

nkf自体は、Versrion1.9だったのですが、最近動きがあります。

http://www01.tcp-ip.or.jp/~furukawa/nkf_utf8/ にて、utf-8対応が発表され
もともとの nkf開発者である kono さんが、betaとして取り込み、現在、
http://sourceforge.jp/projects/nkf/ が開発の場になってるようです。

たむらの取組みはこちら。

http://tamura.tdiary.net/namazu.rb?query=nkf+utf-8&submit=Search%21&whence=0&max=20&result=normal&sort=field%3Auri%3Aascending

最新のソースコードは
http://www.ruby-lang.org/~tamura/ruby/unkf-20020919.tar.bz2
で、ruby-1.7対応や、標準nkfとの同居を考慮して、unkfという名前にしてます。

出来れば、ruby本体に入れてもらえばと思うのですが。

ただし、問題点として、
 * そもそも nkfが UTFに対応して、うれしいのか。
  uconv/iconvもあるし。まぁサイズ的なメリットはあるかも。

 * 現在の文字コード判定 NKF::guess に UTFを追加するのか。
  nkfの作り的な問題ですが、判定ルーチンだけを関数で持ってません。
  現在の rb_nkf_guess()は
      /*
       * Character code detection - Algorithm described in:
       * Ken Lunde. `Understanding Japanese Information Processing'
       * Sebastopol, CA: O'Reilly & Associates.
       */
  と自前でコードを持ってます。JVim〜RubyWinからUTF-8も含む判定ルーチンを
  組み込んだりしましたが、認識率に問題あります。(ある程度は仕方ないですが)

  rubyから利用できるものたちのテストを MoonWolf氏がやってくれました。
http://rwiki.jin.gr.jp/cgi-bin/rw-cgi.rb?cmd=view;name=MoonWolf

 * nkf-2xが、beta扱い
  最近は落ち着いてますが。

ご意見よろしく。


-- 

たむら (http://tamura.tdiary.net)