前川です。

坂口さん、ご指摘、ありがとうございます。
windowsで、SJISを使用していますので、-Ksで、動作、確認できました。

Tetsuo Sakaguchi <saka / slis.tsukuba.ac.jp> wrote on 2009/08/21 18:02:24:

> In message <ca6fd2180908210042k833870cw4e634d22f37d5456 / mail.gmail.
> com> 2009-08-21T16:42+0900,
> "sora.h" <sora134 / gmail.com> wrote:
> > 1.9未満(1.8とか)なら$KCODE='u' (utf-8の場合)などとしてもダメですか?

> それは FAQ 事項ですが、ソースコード中に日本語文字列を埋め込む場合には
> 「手遅れになる」ので、先頭行に「#! ruby -Ku」と指定するべきです。

> (「#! ruby -Ku」指定はソースコードが UTF-8 で書かれていることを指示する。
> 一方、プログラム中に「$KCODE='u'」を書くのは、その行を実行したあとは、
> 文字列データが UTF-8 であることを指示する。
> つまり、ソースコード解釈の際には処理系はまだ UTF-8だとは
> わからないことになります。)

確かに、そうですね。解釈のときは、どのコードで記述しているかを、
Rubyに教えないと、わからないですね。

> UTF-8 や EUC-JP の場合は実害が少ないですが、
> SJIS の場合は「表」のように1バイト単位で見ると、
> 0x5c、つまりバックスラッシュと同じコードが含まれるので、致命的ですね。
「表」が、展開されるコードまでは、確認しませんでした。
ありがとうございます。