久しぶりにRubyを使って'I'のASCIIコードを調べるメモ $ irb irb(main):001:0> RUBY_VERSION => "1.9.3" irb(main):002:0> "I"[0] => "I" ← あれ?1.8の時はこれで文字コード取得できなかったっけ? (1.8の時は[]の戻り値はIntegerだったけど、1.9からStringに変更されている) irb(main):003:0> "I"[0].chr => "I" ← なんか違う? (1.8の時はInteger#chrで文字列に戻るが、 1.9以降はString#chrは一文字目を返すメソッドなのでそのまま動いてしまう) irb(main):004:0> "I".to_i => 0 ← そりゃそうだ irb(main):005:0> "I".to_c => (0+1i) ← 複素数がかえってきてびっくり。String#to_cってあるのか irb(main):006:0> "I".ord => 73 ← ようやくきたこれ irb(main):007:0> "I"[0].ord.to_s(16) => "49" ← ようやく見慣れた16進数がきた まとめてならこっち? $ irb irb(main):011:0> "ABCD".unpack("H*") => ["41424344"] irb(main):012:0> ["41424344"].pack("H*") => "ABCD"