Ruby/Encode Draft

はじめに

 現在、RubynkfのラッパーモジュールであるNKFを用いたKconvモジュールが、文字エンコーディング変換の標準となっている。しかし、Kconvはその変換の実体であるNKFの実装を強く意識したものとなっており、その過去から逃れることができない。

 また、Kconvという名前はKanji Converterを意味するが、この名称は日本語に特化しており、国際化するのに際してよろしくない。

Encodeモジュール

 Encode::JPモジュールはNKFモジュールのラッパーとして作られる。しかし、その動作はNKFの動作に縛られない。基本的にはCP932互換の動作をするべきだと考える。

Encode::from_to( str, from, to, option=nil )

PerlのEncode::from_toを非破壊的にしたものに相当し、

Encode::from_to(str, 'Shift_JIS', 'EUC-JP')

NKF.nkf('-eS -x', str)

に変換される。

encodingライブラリ

Rubyにおいて、Stringのメソッドを文字志向にするためのライブラリとしてはjcode.rbが既に存在するが、このライブラリは日本語に依存している面が大きい。

  • jcode.rbの後継
  • j*はchar_*に名称変更
  • byte_*の新設

misc

  • ってか$KCODEって名称からしてどうよ。
  • 文字列ごとにencodingを指定
  • byte arrayの代わりにstringを使えるように
  • str[index] で256以上の値を返す