我正在尝试将message[0]
与"CONNECT"
进行比较,但它只是失败了:
puts message[0].dump
->"\x00C\x00O\x00N\x00N\x00E\x00C\x00T\x00"
puts "CONNECT".dump
->"CONNECT"
有人能解释我为什么吗?
答案 0 :(得分:2)
你的字符串中似乎有很多NULL字符。最好弄清楚它们来自哪里,但只要删除它们就可以使用它。
def remove_null_chrs(str)
str.unpack('C*').select{|x|x != 0}.pack('C*')
end
例如
remove_null_chrs("\x00C\x00O\x00N\x00N\x00E\x00C\x00T\x00")
=> "CONNECT"
答案 1 :(得分:0)
message [0]采用不同的编码
试试这个message[0].encode("UTF-8", :invalid=>:replace, :replace=>"?")
如果它不起作用,你必须尝试不同的编码。我认为这个答案仅适用于1.9。*版本。对于旧版本,我认为你必须要求iconv