新手问题 求助 关于二进制字符串的匹配问题

lilijreey · 2020年08月30日 · 最后由 lilijreey 回复于 2020年09月03日 · 1183 次阅读
a=[1,2,3,1,2]
pa = a.pack("C*") 
b=pa[0,2]
b == "\x01\x02" # false why?

为何 返回 false

jasl@jasl-mbp:~$ irb --version
irb 1.2.3 (2020-02-15)
jasl@jasl-mbp:~$ irb
2.7.1 :001 > a=[1,2,3,1,2]
2.7.1 :002 > pa = a.pack("C*")
2.7.1 :003 > b=pa[0,2]
2.7.1 :004 > b == "\x01\x02"
 => true

可能你用了盗版 Ruby?

jasl 回复

可能是个 BUG “\0x1\0x2" 被识别为普通的字符,没有转义

@lilijreey\x01\x02, 不是 \0x1\0x2, 0 跟 x 的位置反了

需要 登录 后方可回复, 如果你还没有账号请 注册新账号