From: Shugo Maeda Date: 2000-05-19T11:41:26+09:00 Subject: [ruby-list:22733] Re: charset について 前田です。 At Fri, 19 May 2000 10:27:25 +0900, Wakou Aoyama wrote: > > <% ERuby.charset = "EUC-JP" %> > > > > のようにスクリプト中で指定することもできます。 > > これは便利そうですね。ついでにデータのコード変換までやってしまうのはい > かがでしょう。charset 指定と異なるデータを送るのは変ですし、それをやり > たいという人もいないでしょうから。 そうですね。 ただデフォルトでコード変換までしてしまうのはやりすぎのような気も するので。 <% require "eruby/codeconv" ERuby.charset = "ISO-2022-JP" %> のようにするとコード変換するというのはいかがでしょう。 # eruby/codeconv.rbをこのメールに添付します。 > > # $NOHEADERはなくさない方がよいですかね。 > > ERuby::noheader があれば不要ですし、現時点でこれを使用している人もいな > さそうですから、無くしても大丈夫じゃないでしょうかね。(ERuby::noheader > に移行するのが大変なぐらい)使っていた人っています? では削っちゃいます。 -- 前田 修吾 require "nkf" module ERuby module CodeConv PROC_TABLE = {} module_function def add_proc(charset, proc = Proc.new) PROC_TABLE[charset.downcase] = proc end def exec charset = ERuby.charset.downcase if PROC_TABLE.key?(charset) $>.replace(PROC_TABLE[charset].call($>.to_s)) end end add_proc("iso-2022-jp") { |s| NKF::nkf('-j', s) } add_proc("euc-jp") { |s| NKF::nkf('-e', s) } add_proc("shift_jis") { |s| NKF::nkf('-s', s) } at_exit { exec } end end