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並みになってくれたらとても嬉しいけど、さすがに難しいですね^^;