中村 のりつぐ です。

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