Ruby-KCODEについて

Rubyでプログラム中の文字コードを指定する

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


プログラムに以下のように記述することで、プログラム中の文字コードを指定することができます。


$KCODE='UTF8'

$KCODEの値 文字コード
SJIS Shift_JIS
EUC EUC-JP
UTF8 UTF-8
NONE NONE(ASCII)

Ruby 1.9で$KCODEが廃止

Ruby 1.9 では$KCODEが廃止されています。

文字コードの指定は、先頭行に「magic comment」を書きます。


Shift_JIS に設定
# -*- coding: shift_jis -*-
Windows-31J に設定
# -*- coding: windows-31j -*-
EUC-JP に設定
# -*- coding: euc-jp -*-
UTF-8 に設定
# -*- coding: utf-8 -*-

文字コードの指定について

shebang行(シェバン:スクリプトの#!から始まる1行目のこと。)にオプションとして記述することで、読み込み時に評価させることが可能です。


#!/usr/local/bin/ruby -Ks
puts $KCODE       #=> SJIS


#!/usr/local/bin/ruby -Ke
puts $KCODE       #=> EUC


#!/usr/local/bin/ruby -Ku
puts $KCODE       #=> UTF8


#!/usr/local/bin/ruby -Kn
puts $KCODE       #=> NONE


関連ページ