Задать вопрос
@Drovosek01

Почему Powershell автоматически меняет кодировку кода в UTF-16 LE?

Данная тема - следствие вот это - Какой минимальный код для скачивания и выполнения Powershell-скрипта с передачей в него аргументов?

Есть скрипт для поиска и замены hex-паттернов байт
https://github.com/Drovosek01/ReplaceHexPatcher/bl...

Я хочу сформировать однострочную команду для скачивания и выполнения этого скрипта, но командлет iex "ргуается" на комментарии в коде... и моментально закрывает окно Powershell
irm https://github.com/Drovosek01/ReplaceHexPatcher/raw/refs/heads/main/core/v2/ReplaceHexBytesAll.ps1 | iex

Хотя оригинальный файл в котором я пишу код - запускается без проблем.

Я переделал код на такой
& ([scriptblock]::Create((Invoke-RestMethod -Uri "https://github.com/Drovosek01/ReplaceHexPatcher/raw/refs/heads/main/core/v2/ReplaceHexBytesAll.ps1")))

Но он также выполнялся с ошибкой

Переделал код на такой, с скачиванием и сохранением его в файл и запуском файла
$url="https://github.com/Drovosek01/ReplaceHexPatcher/raw/refs/heads/main/core/v2/ReplaceHexBytesAll.ps1"; $f=[System.IO.Path]::GetTempFileName()+".ps1"; (irm $url)>$f; & $f

Но это все равно привело к ошибке

В итоге я перешел в папку %temp% и посмотрел созданный временный файл и он весил в 2 раза больше оригинального.
Оказалось, что скачанный код почему-то сохранился в файл с кодировкой UTF-16 LE

Почему так происходит?
  • Вопрос задан
  • 26 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы