char String 型変換
今日、rubyでBinaryのデータを扱っていた際に気づいたこと。Binaryデータを charで受け取って Stringの変数に追加していったところ、lengthで取得できる長さが合わない。何かと思って表示してみると、"\000"などの表示が。どうも、
str << 0x00
などとした時、表記可能でない文字だった場合は "\000"の表記で保存されるようです。表示してみたらその形式になっていて驚いたのですが、ちゃんと扱いは1文字になってました。つまり、
p "\000\001".length # 2 p "\000\001"[1] # "\001"
となります。なるほどなぁ、と納得。StringクラスでもちゃんとBinaryまで扱えるようになっているんですね。さらには、
p "\x0d\x0a" # "\r\n" p "\011" # "\t"
などと表示されるようです。
また一つ、rubyを知りました。rubyをこの1週間ずっと触ってますが、だいぶ慣れてきた感じです。Test::Unitも活用させてもらってます。あとは、RDTがJDT並みになってくれたらとても嬉しいけど、さすがに難しいですね^^;