Проблемы с кодировкой символов обычно не возникают, если вы выводите вывод внешней программы на экран , но могут возникать, если вы захватываете или отправляете его другой команде через конвейер, потому что PowerShell декодирует вывод в. NET строки в процессе.
Чтобы PowerShell правильно распознал вывод git
, необходимо:
знает, какую кодировку символов git
использует в своих выходных данных
и установите [Console]::OutputEncoding
в эту кодировку (для Windows по умолчанию используется устаревшая кодовая страница OEM вашей системы).
git
использует UTF-8, поэтому вы должны выполнить следующие до захвата git
вывода:
[Console]::OutputEncoding = [System.Text.Encoding]::Utf8
Обратите внимание, что если вам [нужно] использовать &
для вызова внешней программы, то не имеет значения в отношении кодировки символов.