グローバル変数「$KCODE」

広告

日本語などを使用する場合には文字コードを意識しなければなりません。まず簡単な例として次のサンプルを試してみて下さい。

test1-1.rb

print("日本語の表示");

ファイルに保存する時の文字コードは「Shift_JIS」に設定してあります。

上記のプログラムを実行してみます。

グローバル変数「$KCODE」

上記のようにいわゆる文字化けして表示されます。これはRubyがプログラムで使用されている文字コードを正しく認識していないためです。

Rubyはプログラムで使用されている日本語などの文字コードとして、グローバル変数「$KCODE」に設定された値を使用します。

プログラム中の文字列の文字コードは $KCODE の値を使用

「$KCODE」が取り得る値と、その時に認識する文字コードの関係は次の通りです。

$KCODEの値文字コード
SJISShift_JIS
EUCEUC-JP
UTF8UTF-8
NONENONE(ASCII)

ではデフォルトで「$KCODE」に何が設定されているかを確認してみます。

test1-2.rb

print("KCODE=", $KCODE);

上記のプログラムを実行してみます。

グローバル変数「$KCODE」

このようにデフォルトでは文字コードとしてNONE(ASCII)と認識されています。このままでは日本語などのマルチバイト文字列は文字化けしてしまいますので適切な文字コードを設定する必要があります。

それでは次のページで「$KCODE」の設定方法を確認します。

( Written by Tatsuo Ikura )