From: Masatoshi SEKI Date: 2008-12-21T23:22:29+09:00 Subject: [ruby-dev:37528] Re: Current status of 1.9.1 RC1's issues 咳といいます。 On 2008/12/21, at 8:20, Yugui (Yuki Sonoda) wrote: > Yuguiです > > On 12/21/08 2:19 AM, Masatoshi SEKI wrote: >> + -r library load a library >> + -E ex[:in] pecify the default external and internal >> character >> encodings >> + -S safe_level set $SAFE (0..4) >> + -T trim_mode specify trim_mode (0..2, -) >> -P ignore lines which start with "%" > > default_external, default_internalも設定する方法があれば嬉 > しいとはおもい > ます。 > > けれども、まずERBにscript encodingを知らせる方 > 法があるかどうかなんですよ > ね。ERB.newの場合はERBに渡す文字列を適切に処理 > しておけば良いとして、erb > コマンドの場合はどうしたら良いでしょうか。 > > <%# -*- coding: UTF-8 -*- %> > > とか、こんな記法を受け付けたりしますか? そうすると今度は > ERB.newに渡され > た文字列に矛盾するmagic commentが含まれていた場合が問 > 題になりますよね。 > > それとも、erbコマンドに何か新しいオプションを導入する > 方が適切でしょうか。 この機会にrubyのM18Nについて学べたらと思ってます。 magic commentを含むRubyスクリプトを出力するようなerb のスクリプトを書く ときなどにめんどくさそうなので、magic comment以外の方法 で解決できた らよいなあと考えてます。 script encodingとは、 * evalされるStringによって決まるのか、 * それともevalするコンテキストの状態によって決まるのか、 がわかってません。(私が理解してない、の意) default_external, default_internalが指示できれば、その後に読む $<.readは その指示したencodingとして処理されるのでしょうか? もしそうであれば、-Eのオプションで実質的にscript encodingを知らせたことに なりますか? あるいは、erbコマンドに新しいオプションを導入し、 $<.readした文字列を そのオプションで指定したencodingにすることで達成できる でしょうか。