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

Ruby のプログラムで使用している文字コードを指定するにはプログラムの 1 行目にマジックコメントと呼ばれる形式を使って文字コードを指定します。ここでは Ruby でプログラムの文字コードを指定する方法について解説します。

(Last modified: )

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

以前はグローバル変数の $KCODE を使用して文字コードを設定していましたが、現在は $KCODE は廃止されています。代わりにプログラムの文字コードを指定するにはマジックコメントをプログラムの 1 行目に記述します。

マジックコメントの書式は次の通りです。

# coding: 文字コード

例えば次のように記述します。

# coding: utf-8
# coding: euc-jp
# coding: Shift_JIS
# coding: us-ascii

プログラムを UTF-8 で記述している場合は、プログラムの 1 行目に # coding: utf-8 と記述してください。

またマジックコメントは次のように記述することもできます。いずれの記述方法でも文字コードを指定することができます。

# coding: utf-8
# encoding: utf-8
# -*- coding: utf-8 -*-
# vim:set fileencoding=utf-8:
サンプルコード

実際に試してみます。

# encoding: Shift_JIS
p __ENCODING__

実行結果は次のようになります。

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

マジックコメントを使ってプログラムの文字コードを Shit_JIS に設定したあとで p __ENCODING__ を使って現在設定されている文字コードを取得し表示しました。

デフォルトの文字コード

Ruby 2.0 以降はプログラムで使用されるデフォルトの文字コードが UTF-8 に設定されています。そのため、プログラムの文字コードで UTF-8 を使用する場合は明示的にマジックコードを記述しなくても構いません。

サンプルコード

実際に試してみます。

p __ENCODING__

実行結果は次のようになります。

デフォルトの文字コード

マジックコメントを記述せずに現在設定されている文字コードを取得したところ UTF-8 と表示されました。なお UTF-8 を使用している場合でも明示的にマジックコードを記述しても構いません。

-- --

Ruby でプログラムの文字コードを指定する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。