文字列をバイト毎に繰り返し処理を使う場合、String#each_byte を使うのだが、そのまま表示させると
irb(main):001:0> "abcdefg".each_byte {|elm| p elm }
97
98
99
100
101
102
103
整数で表示されてしまうので、Integer#chr を使う。
irb(main):002:0> "abcdefg".each_byte {|elm| p elm.chr }
"a"
"b"
"c"
"d"
"e"
"f"
"g"
String#bytes の場合は、Array#mapメソッドを使う。
irb(main):008:0> "abcdefg".bytes.map {|elm| elm.chr }
=> ["a", "b", "c", "d", "e", "f", "g"]
プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで (Software Design plusシリーズ) [ 伊藤淳一(プログラミング) ]
ゼロからわかるRuby超入門 はじめてのプログラミング (かんたんIT基礎講座) [ 五十嵐邦明 ]