我正在尝试在 Ruby 中实现以下 C++ 代码:
sprintf (tmp, "|%02x", Payload[i] & 0xFF);
基本上,有效载荷数据中的所有字节,其值不是 US-ASCII 代码表中的字母或数字代码,都被编码为三个字节:
| X1 X2
其中'|' 是一个字节,其值为字符“|”的代码 在 US-ASCII 码表 (0x7C) 中,“X1”是字节码的第一个十六进制数字,“X2”是字节码的第二个十六进制数字。
到目前为止,我已经编写了这个代码:
payload.each_char do |char|
if char.match(/^[[:alnum:]]$/)
encoded_string << char && next
end
encoded_string << sprintf("|%02x", char.hex);
end
问题是,这对于“*”等特殊符号不能正常工作。
任何想法都非常感谢。