如何把字符串转换成16进制数据

如何把字符串转换成16进制数据

现在想把一个字符串转换成16进制的数据,以便进行tcp层数据伟输,不知用什么方法?
你是说16进制的字符串形式吗?
用 to_i 转为整数, 再 printf 是不是可以?
str.hex

"0x0a".hex  #=> 10
 "-1234".hex  #=> -4660
 "0".hex   #=> 0
 "wombat".hex #=> 0

require 'uri'
foo = "method=addData&userId=12345678&key=data-info&data=newdata你是中国人"
escape = URI.escape(foo)
puts escape

输出结果是:
method=addData&userId=12345678&key=data-info&data=newdata%C4%E3%CA%C7%D6%D0%B9%FA%C8%CB

对于英文来说是一样的,但是对于中文会转换的。
看了楼上的回答,才知道楼主的问题是url编码,见笑了
URI.encode
URI.escape
好像是同一个作用.