[ruby-list:46993] ASCII 文字の連続性について

From: "Hideo Konami" <konami@...>
Date: 2010-04-03 03:22:09 UTC
List: ruby-list #46993
小波です.

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" と ":" の間は,いわばつながっていないということに
なります.この振る舞いはちょっと奇妙に思えるのですが,どんな
理由でそうなっているのでしょうか?

また,所期の目的をスマートに実現する方法がありましたら,教え
ていただけるとうれしいです.






In This Thread

Prev Next