У меня есть такой код в PHP:
$b1 = 0x80 | (0x1 & 0x0f);
$file = fopen('message.dat', 'w') or die('cannot create file');
fwrite($file, $b1);
fclose($file);
hexdump показывает мне:
$ hexdump message.dat
0000000 3231 0039
0000003
Тот же код в Ruby:
b1 = 0x08 | (0x1 & 0x0f)
File.open('message.dat', 'w') { |file| file.write b1 }
hexdump показывает мне:
$ hexdump sockets/message.dat
0000000 0039
0000001
b1 должен быть равен 9 (десятичный). Шестнадцатеричный ASCII дает 39. Хорошо.
Но PHP дает дополнительные 3231 гекс.
Зачем?
PS. Я хочу конвертировать код PHP в Ruby. Это сервер WebSocket.
PHP-код работает правильно.
Вывод файла только для отладки.
Задача ещё не решена.
Других решений пока нет …