Ruby 1.9 のエンコーディング関連(続き)

Ruby 1.9エンコーディングに関する内容の続き。

magic comment
magic comment は以下のように書く。
# -*- encoding: utf-8 -*-
# -*- coding: utf-8 -*-

こちらで書いたのように"-*-" はなくてもいいが慣例として書く方が良い。

String クラス

Ruby 1.9 では文字列ごとにエンコーディングを持つようになった。文字列のエンコーディング情報は String.encoding に保持している。
また、String を別のエンコーディングに変換するには String.encode を使う。

a = "a"
puts a.encoding
#=> ASCII-8BIT

b = a.encode("utf-8")
puts a.encoding 
#=> UTF-8
変数・定数

Ruby 1.9 からは $KCODE は意味を持たなくなった。使おうとすると warning が出る。

puts $KCODE
#=> warning: variable $KCODE is no longer effective

また、スクリプトファイルのエンコーディングを取得するには __ENCODING__ を使う。

# -*- encoding: utf-8 -*-
puts __ENCODING__
# => UTF-8


Ruby 1.9エンコーディングについてはいろんな人がまとめているのでリンクを張っておく。
diary of madman - Ruby 1.9 m17n リファレンス (不完全版)
dialy gimite - Ruby 1.9.0のm17nについてメモ
まちゅダイアリー - Ruby1.9.0のデフォルトエンコーディング
val it : α → α = fun - Ruby 1.9.0 の M17N メモ