Ruby Tips!

RubyのTipsを紹介します

文字から文字コードを得る / 文字コードから文字を得る

文字から文字コードを得る

Ruby 1.8ではString#[]で文字列から1バイト抜き出し文字コードを得ることができる。

p "a"[0] #=> 97
p ""[0] #=> 227
p ""[1] #=> 129
p ""[2] #=> 130

非マルチバイト文字であれば?リテラル文字コードを得ることもできる。

p ?a #=> 97

Ruby 1.9ではString#[]は文字列から1文字を文字列として取り出すよう変更された。
その代わりString#ordを使って文字列の先頭文字の文字コードを得ることができる。

p "a".ord #=> 97
p "".ord #=> 12354

文字コードから文字を得る

文字から文字コードを得るにはInteger.chrを使う。
このメソッドではRuby 1.8ではマルチバイト文字を得ることはできない。

p 97.chr #=> "a"

Ruby 1.9ではInteger.chrはマルチバイト文字に対応した。
ただしエンコーディングの指定が必要である。

p 12354.chr("UTF-8") #=> "あ"