使用packer / unpacker Ruby将String Object转换为Bytes,反之亦然

时间:2015-07-21 12:59:49

标签: ruby rubygems

我想将字符串对象转换为字节,反之亦然。

是否可以使用Ruby Packer / Unpacker?

我无法找到要使用的格式说明符

*pack_object = "Test".pack('**x**')*      where x is format specifier
*unpacked_object = pack_object.unpack('**x**')*   , this should result in "Test" string 

1 个答案:

答案 0 :(得分:0)

String有一个bytes方法,它返回一个整数数组:

'Type'.bytes
#=> [84, 121, 112, 101]

等效unpack指令为C* :(已经noted by cremno

'Type'.unpack('C*')
#=> [84, 121, 112, 101]

或者相反:

[84, 121, 112, 101].pack('C*')
#=> "Type"

请注意pack以二进制编码方式返回字符串。

关于your comment

  

我需要的输出与我打包的串口相同

packunpack是对应的,因此您可以使用所有类型的指令:

'Type'.unpack('b*')
#=> ["00101010100111100000111010100110"]

['00101010100111100000111010100110'].pack('b*')
#=> 'Type'