SerialPortなどで16進数のパケットを受けると、
こんな感じの文字列が返ってくる事があります。
"~\u0000\u0018\x91\u0000\u0013\xA2\u0000@u"
もとは16進数の数値がズラズラと並んでいるはずなのですが。
てな感じで処理されるようです。
とはいえ、このままだと何書いてるのかわからないですね。
そういう場合はunpackを使ってあげるとよいです
ケース1:一本の文字列として
("H*")で切り出してあげれば、元の16進数の値が呼び出せます
Bindataに渡すなら、これです。
"~\u0000\u0018\x91\u0000\u0013\xA2\u0000@u".unpack("H*") #=> ["7e0018910013a2004075"]
ケース2:一バイトごとに
一バイトごとに処理したい場合は("C*")
p "~\u0000\u0018\x91\u0000\u0013\xA2\u0000@u".unpack("C*") #=> [126, 0, 24, 145, 0, 19, 162, 0, 64, 117]