コマンドラインオプションで文字コードの指定
文字コードを設定するには、二つの方法があります。まずはコマンドラインオプションで文字コードを指定する方法です。
Rubyのプログラムを実行する時に次のようにオプションを指定します。
ruby -K[kcode] プログラムファイル名
[kcode]の部分に文字コードに対応した値を設定します。設定可能な値は次の通りです。
kcode | 文字コード |
---|---|
s or S | Shift_JIS |
e or E | EUC-JP |
u or U | UTF-8 |
n or N | NONE(ASCII) |
例えば文字コードにShift_JISを設定する場合には「s」または「S」を指定します。大文字と小文字のどちらでも同じです。
ruby -Ks プログラムファイル名 ruby -Ke プログラムファイル名 ruby -Ku プログラムファイル名 ruby -Kn プログラムファイル名
コマンドラインオプションで指定した値によって、グローバル変数「$KCODE」に値が設定されます。この値の設定はプログラムが読み込まれる前に設定されますので、プログラムの中で記述された文字列も指定された文字コードで書かれたものと識別されます。
それでは再度「$KCODE」の値を出力するだけの簡単なサンプルを、コマンドラインオプションを変更しながら実行してみます。
print("KCODE=", $KCODE);
上記のプログラムを実行してみます。
コマンドラインオプションで指定した値によって、「$KCODE」の値が変更されています。
それでは日本語を含むプログラムを試してみます。
print("日本語を表示");
上記のプログラムを「test2-2.rb」として保存します。文字コードはShift_JISです。そして下記のように実行して下さい。
今度は文字化けせずに実行できました。
( Written by Tatsuo Ikura )