2008年7月23日水曜日

Rubyをごにょごにょ その2

Rubyで文字コード指定を行う場合、rubyコマンドに-KCODEオプションを付けるか、スクリプト中でグローバル変数$KCODEに代入して指定する。
この$KCODEの扱いについてちょっとおもしろかったのでTipsというかColumn。

$KCODEに代入するのは、"EUC","SJIS","UTF8","NONE"という文字列。初期値は"NONE"
大文字小文字関係なく指定でき、さらにそれぞれ'e','s','u','n'と省略して書く事ができる。

なぜ省略できるかというと、実は$KCODEに文字コードを示す文字列を代入する時、実際には文字列の1バイト目だけを評価しているからである。
例えば、次の様に代入式を書いても$KCODEにはSJISを指定したことになる。
$KCODE = "SUGEEEEEEEEE"
要するに最初の1文字だけが'e','s','u','n'(及びそれぞれの大文字)なら、代入する文字列は何でも良いのだ。そして、これら以外のものを代入すると、$KCODEは"NONE"になる。

それと言わずもがな、$KCODEのKはKANJIのK。

0 件のコメント: