Это потому, что PowerShell будет видеть выходные данные в виде строк по умолчанию. Строки в .NET имеют Unicode, поэтому это вывод по умолчанию для PowerShell.
Я предполагаю, что вы используете PowerShell для записи вывода в файл? Если это так, то использование «Set-Content -Encoding Byte» решит вашу проблему.
Measure-Command {& "c:\myscript.pl" | Set-Content "C:\myoutput.bin" -Encoding Byte}