中村 のりつぐ です。 In article <20020317060718.DF7462D4 / sharui.nakada.kanuma.tochigi.jp> nobu.nakada / nifty.ne.jp wrote: > > ただ、今回の場合、(私も書いたときには意識していなかったのですが、) > > ui_2.rb での GUI でのやりとりが SJIS で行われているので、 > > body.rb 自体を EUC と認識しつつ SJIS としてデータを > > 格納するということが必要みたいです。([ruby-list:34452] の話?) > > つまり、ui_?.rbの文字コードを主体にしたいということですか。 はい。 というのは GUI のやりとりが SJIS で行われているため、 ui_2.rb を書き換えないでおくためには ui_2.rb のコードを 主体にできたら良さそうと思ったからです。 > > o body.rb を読み込む > > o EUC と認識しつつ SJIS に変換 > > o SJIS ファイルとして -Ks 相当で parse > > o require も -Ks 相当で > > ui_?.rbで$KCODEを設定して、body.rbのほうですべてのリテラルをそ > れに合わせて変換したいということですよね。しかし、body.rbをロー > ドする時点ではui_?.rbはロードされていないので、どのコードに変換 > すべきかが分からないように思えますが。ui_?.rbのrequire後に変換 > するしかないのでは。 拡張 -K オプションみたいなのがあればできそうな気もしますが…。 (そこまで要求するのはちょっとやりすぎという気もします。 あると便利なときはあるだろうけど) 考えてみると、body.rb を 2つに分けて文字コードに依存する部分を read & kconv & eval するように変えれば、できるのかもという 気もしてきました。 GUI 部分にコード変換を入れるのと、色々変なこと(read & kconv & eval など)を考えるのとどっちが 楽 & スマートなのかは 分からないですが。 > たぶんm17n rubyになれば、そういう変換は自動的にできるようになる > と思います。 2.0 には入るのでしょうかね? 中村 典嗣 E-mail: nnakamur / mxq.mesh.ne.jp