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だとは
わからないことになります。)

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

PS. もう何度学生達に説明したことか、、、、。。
--
阪口哲男@図書館情報メディア研究科.大学院.筑波大学
Tetsuo SAKAGUCHI.
Graduate School of Library, Information and Media Studies
University of Tsukuba, JAPAN.