酒本@KDDと申します。

初歩的ですが pack について質問させてください。
以下の msg の最後の要素を文字列として扱いたいのですが、
結果はなぜか余分な 0x00 が付加されてしまいます。
なにか勘違いしてますでしょうか?

msg = [ 52, 0, 0, 3009, 0, 0, 1, 20, "00000000000000000002" ]
bmsg = msg.pack("NNNNN NNN a20")
print bmsg.unpack("NNNNN NNN a20").join(","), "!\n"
print "len=",bmsg.size,"\n"
bmsg.each_byte{ |c| printf("%02X ",c) }; print "\n"

-------結果
52,0,0,3009,0,0,1,20,00000000000000000002!
len=72
00 00 00 34 00 00 00 00 00 00 00 00 00 00 0B C1 00 00 00 00 00 00 00 00 00 00 00
01 00 00 00 14 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 32 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

len は52となることを期待しているのですが。
よろしくお願い致します。
--
KDD交換サービス技術部ソフトウェアセンター
交換新サービスG(旧第2課)
酒本 定幸 sa-sakamoto / kdd.co.jp TEL 03-3347-5695