Powershell. Исправить шрифт в консоли ISE

Можно заметить, что используя утилиты CMD в консоли ISE кириллица выводится кракозябрами, а в Powershell.exe — такая проблема не наблюдается.
Давайте выясним что является этому причиной

Например при попытке получить результат команды

мы увидим такую картину

Посмотрим кодировку в обоих консолях следующей командой

ISE
Powershell

Теперь посмотрим текущую страницу кодировки (CP) в CMD

Вывод

Как мы убедились, кодировки СMD и Powershell.exe совпадают, а ISE в свою очередь использует Windows-1251

Соответственно ISE ожидает что на вход ему и будут попадать символы в кодировке 1251, а по факту CMD пытается передать их в кодировке DOS — cp866

Решение

Решение достаточно простое — поменять используемую кодировку консоли ISE на cp866 командой:

После этого повторно выполняем нужную нам команду и получаем приемлемый результат

Вы можете получить ошибку следующего вида

Что бы смена кодировки применилась успешно, нужно предварительно выполнить любую CMD команду, которая вернет вам текстовый вывод кракозябрами.

Опять же подойдет Ping, так как при вызове Ping Powershell сразу обращается к Legacy утилите из System32, а не какому то своему встроенному механизму.

После этих действий команда на смену кодировки успешно отработает

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *