From: "NARUSE, Yui" Date: 2010-05-02T01:13:08+09:00 Subject: [ruby-dev:41128] Re: Rails3 M17N 成瀬です。 (2010/05/02 0:35), KUBO Takehiro wrote: > 2010/4/30 NARUSE, Yui: >> # MySQL とか Oracle とかはどうなんだっけ? > > Oracle に関していうと、るびまの「Ruby M17N の設計と実装」の IO の章(*1) > を参考にした実装になっています。 > > Oracle の NLS_LANG と ruby のエンコーディングの対応表(*2)を引いて、 > Oracle 側のエンコーディング(外部エンコーディングに対応)を決めて、 > > 1. ruby の String を Oracle の関数に渡すとき > > ruby の String のエンコーディングを Oracle 側のエンコーディングに変換 > してから Oracle の関数に渡す。ただし、RAW 型、BLOB 型のときは、エンコー > ディングの変換は行なわない。 > > 2. Oracle から取得した文字列を ruby に返すとき > > 内部エンコーディングが設定されてないときは、Oracle 側のエンコーディン > グを文字列に設定する。内部エンコーディングが設定されているときは、 > Oracle 側のエンコーディングから内部エンコーディングに変換した上で ruby > 側に返す。ただし、RAW 型、BLOB 型のときは内部エンコーディングの値にか > かわらず無条件にASCII-8BIT を設定し、文字コードの変換は行わない。 > > *1 http://jp.rubyist.net/magazine/?0025-Ruby19_m17n#l63 > *2 http://ruby-oci8.rubyforge.org/svn/trunk/ruby-oci8/lib/oci8/encoding.yml なるほど、正しいと思います。 情報ありがとうございます。 -- NARUSE, Yui