Кракозябры

Кракозябры в консоли сборки при использовании MSVC Express 2010 (русский) , Qt Creator 2.4.1 (Qt 4.8.1), Win 10.

По факту cl.exe выдает в 866 кодировке комментарии к ошибкам типа такого варианта:

:-1: ошибка: C2065: NUL: ­Ґ®Ўкпў«Ґ­­л© Ё¤Ґ­вЁдЁЄ в®а

Пытались удалять русск. версию MSVS 2010 Espress, устанавливали Ultimate, Professinal, но все они как назло были русские.

Все оказалось проще. Нам помог выбор в параметрах Windows 10 языка ENGL!

:-1: error: C2065: 'NUL' : undeclared identifier

Следующий вариант - кракозябры в консоли при запуске программы, у которой используются библиотеки openssl , собранные из исходников стандартно через батники (где консоль была chcp 866).

Дело в том, что там в исходниках openssl есть дебаг вывод параметров сертификатов, которые содержат в том числе и не латинские символы.

Тут надо понимать, что сертификаты читаются из хранилища Windows. И оказывается есть сертификаты в кодировке 1251, а stdout куда они выводятся в кодировке 866. Как-то так наверное.

Чтобы вывод в stdout был правильным (читаемым) можно в программе указать :

QTextCodec::setCodecForLocale(QTextCodec::codecForName("IBM 866"));

И тогда мы увидим в консоли примерно такое:

expiredCerts CommonName :  "УЦ ФГУП ГНИВЦ ФНС России"   "Ср 2. сен 10:04:00 2020"

Не понятно почему в 2022г. Windows использует кодировку локали 866, 1251. Почему бы не использовать UTF8 ....