我在PHP中有这样的代码:
$b1 = 0x80 | (0x1 & 0x0f);
$file = fopen('message.dat', 'w') or die('cannot create file');
fwrite($file, $b1);
fclose($file);
hexdump告诉我:
$ hexdump message.dat
<00> 0000000 3231 0039 Ruby中的相同代码:
b1 = 0x08 | (0x1 & 0x0f)
File.open('message.dat', 'w') { |file| file.write b1 }
hexdump告诉我:
$ hexdump sockets/message.dat
<00> 0000000 0039 b1应该等于9(十进制)。十六进制ASCII给出了39.好的。 但PHP提供额外的3231十六进制。
为什么?
PS 即可。我想将PHP代码转换为Ruby。这是WebSocket服务器。 PHP代码正常工作。 文件输出仅用于调试。