古くは弾さんのエントリにもあるchrとordのお話。 なお、Ruby1.9以降を前提にしています。1.8は多分挙動がだいぶ違うはず。 RubyとUnicodeのCodepointの話は、下記の記事がわかりやすくよくまとまっていています。 Ruby にて文字と Unicode コードポイントの相互変換を行う - vivid memo ポイント ASCIIにない範囲の文字をchrするときは、encodingを指定すること UnicodeのRangeは、0x0〜0x10FFFF (1114111)まで サンプルコード # ASCIIの変換 p "A".ord # => 65 p 65.chr # => "A" p "A".ord.chr # => "A" # UTF-8の変換 p "文".ord # => 25991 # encodingを指定しないとUS-ASCIIの範囲で文字を返そうとする