По умолчанию, когда вы перенаправляете вывод команды в файл или подключаете ее к чему-то еще в PowerShell, кодировка UTF-16, что не полезно. Я хочу изменить его на UTF-8.
Это можно сделать в каждом конкретном случае, заменив синтаксис >foo.txt
на | out-file foo.txt -encoding utf8
, но это неудобно повторять каждый раз.
Постоянный способ установить вещи в PowerShell - это поместить их в \Users\me\Documents\WindowsPowerShell\profile.ps1
; Я проверил, что этот файл действительно выполняется при запуске.
Было сказано, что выходное кодирование может быть установлено с помощью $PSDefaultParameterValues = @{'Out-File:Encoding' = 'utf8'}
, но я пробовал это и не имел никакого эффекта.
https://blogs.msdn.microsoft.com/powershell/2006/12/11/outputencoding-to-the-rescue/, в котором говорится о $OutputEncoding
, на первый взгляд выглядит так, как если бы это было актуально, но тогда речь идет о кодировании вывода в ASCII, что не происходит на самом деле.
Как вы устанавливаете PowerShell для использования UTF-8?