Multilingualized ruby-pg

ruby-pg 0.8.0は一応Ruby 1.9に対応しているものの、エンコーディング周りをきちんとサポートしていなかった。つまり、PGconnが折角エンコーディング情報を持っているのに、クエリの結果セットから取得した文字列はそのエンコーディング情報を反映していない。常にASCII-8BITの文字列が返ってくる。

これは嬉しくない。ASCII-8BITのままでは他のエンコーディングとの結合に支障がある。PGconnのclient encoding情報を覚えておいてforce_encodingするというのもアホみたいだ。そこで、この問題を修正するパッチを書いた。

PostgreSQLが対応しているエンコーディングRubyエンコーディングの対応関係は、 PostgreSQL 8.3.7のドキュメント を元に決定した。JOHABはRuby 1.9.1では未対応なのでダミーエンコーディングとした。

なお、実装上の望ましいやり方やエンコーディングマッピングについて、 成瀬さん中田さん に大変お世話になった。それから『 CJKV日中韓越情報処理 』が大変役に立った。持ってて良かった。こういう基礎資料は押さえておけば必ず何かの役に立つよね。ふんふん、多言語情報処理する日本のプログラマは全員持つべき本だ。