Ваш пример вывода не тот, что печатает ваша программа.Ваша программа выводит «плохо» это в двоичном формате (как будто это печатные символы, хотя это не так), а не в шестнадцатеричном формате.
Это работает здесь (как только я передаю его в шестнадцатеричный дампер, так что я могу читатьэто), но я работаю в Linux.
Скорее всего, вы ошибаетесь в том, что вам нужно вызвать binmode
на дескрипторе выходного файла (или, альтернативно, открыть его со слоем :raw
));Вы видите перевод новой строки в CRLF.Если вы добавите binmode *STDOUT;
непосредственно перед печатью (в вашем примере кода), я подозреваю, что вы получите ожидаемый результат.
[В Unix нет перевода с новой строки в CRLF, поэтому он работает]