なかだです。

At Sun, 17 Mar 2002 12:56:47 +0900,
Noritsugu Nakamura wrote:
> > > 3) EUC, SJIS 混在
> > >    body.rb  EUC  (for UNIX and Win)
> > >    ui_1.rb  EUC  (for UNIX)
> > >    ui_2.rb  SJIS (for Win)
> > 
> > requireする代わりにui_?.rbをreadしてkconvで変換してevalと
> > いうのはどうでしょうか?
> 
> Ruby の場合は read & eval も require とほぼ同様の
> 動作をするんでしたっけ?(Python はちょっと違うみたいな
> 気がしましたが)それならそういう戦略もありかも

スクリプトに限れば同じです。一気に読んでしまうかどうかという違
いは、もちろんありますが。

Pythonはあまり知らないのですが、moduleオブジェクトというのがあ
るようなので、そのへんの関係?

> ただ、今回の場合、(私も書いたときには意識していなかったのですが、)
> ui_2.rb での GUI でのやりとりが SJIS で行われているので、
> body.rb 自体を EUC と認識しつつ SJIS としてデータを
> 格納するということが必要みたいです。([ruby-list:34452] の話?)

つまり、ui_?.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後に変換
するしかないのでは。

たぶんm17n rubyになれば、そういう変換は自動的にできるようになる
と思います。

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦