По умолчанию PowerShell в Windows, по-видимому, выводит UTF-16 (например, если я делаю простое echo hello > hi.txt
, то получается hi.txt
UTF-16). Я знаю, что вместо этого могу принудительно установить желаемую кодировку текста echo hello | out-file -encoding utf8 hi.txt
, но мне бы хотелось, чтобы это использовалось по умолчанию при использовании оператора перенаправления. Есть ли способ добиться этого?
powershell
redirection
character-encoding
Бенджамин Поллак
источник
источник
Ответы:
Использование декомпилятора .NET в сборке System.Management.Automation (также называемой «Сборка ядра Microsoft Windows PowerShell Engine») показывает этот фрагмент кода:
Так что это выглядит довольно жестко для меня.
К вашему сведению, это было в Windows 7 Enterprise x64 с установленной PowerShell 2.0.
источник
CommandParameterInternal.CreateParameterWithArgument(PositionUtilities.EmptyExtent, "Encoding", "-Encoding:", PositionUtilities.EmptyExtent, "Unicode", false, false);
Не уверен, что это будет именно то, что вы ищете, но вы можете попробовать установить переменную среды, как указано здесь
источник
$OutputEncoding
это то, что мне нужно; в PowerShell установлено значение ASCII, и оно влияет на то, как все отображается . Что я хочу сделать, это изменить формат текста, который сохранен в файле, который (AFAICT) отличается от того, что$OutputEncoding
контролирует.