From: Hideo Konami Date: 2010-04-03T12:22:09+09:00 Subject: [ruby-list:46993] ASCII 文字の連続性について 小波です. ASCIIの可読文字の配列を生成したいと思って,次のようにしてみました. p (0x20.chr .. 0x7e.chr).to_a 結果は次のようになります. [" ", "!", "\"", "#", "$", "%", "&", "'", "(", ")", "*", "+", ",", "-", ".", "/", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] 期待に反して,0x7e の "~" ではなく 0x39 の "9" で終わってしまい ます.範囲を限定してみると,0x39 と 0x3a の間に切れ目があるらし く,次のような結果が得られます. p (0x30.chr .. 0x3f.chr).to_a #=>["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] p (0x30.chr .. 0x39.chr).to_a #=>["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] p (0x3a.chr .. 0x3f.chr).to_a #=>[":", ";", "<", "=", ">", "?"] つまり,"9" と ":" の間は,いわばつながっていないということに なります.この振る舞いはちょっと奇妙に思えるのですが,どんな 理由でそうなっているのでしょうか? また,所期の目的をスマートに実現する方法がありましたら,教え ていただけるとうれしいです.