Вопросы вместо юникода в консоли

Консоль PyCharm Powershell

На этих двух скриншотах powershell в PyCharm и обычный. Проблема что обычный не прогружает символы юникода правильно

Пробовал менять кодировку через $PSDefaultParameterValues['Out-File:Encoding'] = 'utf8', но не помогло

С чем могло бы быть связано?


Ответы (1 шт):

Автор решения: IvaMuxa

$OutputEncoding указывает на то что вывод происходит в кодировке windows-1252 (WindowsCodePage: 1252) а не в unicode она называется западноевропейская или latin1.

А консоль работает с кодовой страницей 866 которая схожа с Koi8-r где все специфические европейские символы во второй половине заменены на кириллицу. Проще всего установить chcp 1252 или 850, тогда консоль будет работать на западноевропейской однобайтовой кодировке как и вывод в неё. Но могут быть проблемы с русскими символами. Второй вариант это настроить вывод в Pycharm и установить там cp1251

Но можно попробовать установить utf8 и там и там

Для настройки вывода Pycharm https://www.jetbrains.com/help/pycharm/working-with-consoles.html

On the Help menu, click Edit Custom VM Options.

Add the -Dconsole.encoding option and set the value to the necessary encoding. For 
example: -Dconsole.encoding=UTF-8

Restart PyCharm. 

Для консоли

chcp 65001 //utf8
chcp 850   //западноевропейская DOS
chcp 1252  //западноевропейская ANSI 
chcp 866   //кириллическая DOS
chcp 1251  //кириллическая ANSI

Точно не скажу будет ли utf8 адекватно работать в PS сам мучаюсь пишу для CLI PHP модули. Браузер, андроид и мускул воспринимают utf8 как надо а вот вывод в консоль кривой что только не пытался сделать chcp 65001 не помогает приходится вывод для консоли вручную конвертировать, благо в php это легко $str= iconv('utf-8', 'cp866', $str);

→ Ссылка