Ruby には ?a で 1 文字のみの文字列を返す文字リテラルというものがあります。 Ruby を 1.9 以降から使い始めた人には 'a' などの文字列リテラルとの使い分けや String#chr の存在意義などがわからないと思ったので、知っている範囲で歴史的経緯を説明してみたいと思います。 Ruby 1.8 以前と Ruby 1.9 以降の違い マルチエンコーディング対応が入る前の文字リテラルは1バイト文字用のリテラルで、多バイト文字は使えませんでした。 コントロールやメタは昔から使えました。 以降の実行例も含めて、実行例は 2.0 以降も同じなので、省略しています。 1.8.6 以前は未確認ですが、1.8.7 とほぼ同じはずです。 $ rbenv each ruby -ve 'p ?a' ruby 1.8.7 (2013-12-22 patchlevel 375) [x86_64-