Итак, если вы используете версию Qt под компилятор Visual Studio, то в консоли, где появляются сообщения об ошибках и предупреждениях, вместо русских букв будут появляться крякозябры. Будем это лечить.

Крякозябры

Вот так выглядят крякозябры:

Крякозябры

Данная проблема возникает, если использовать русскую версию Visual Studio, ввиду разных кодировок в консолях. В Qt нам нужна кодировка cp1251.

Вся проблема, кроется в том, что специальная утилита jom, неправильно задает кодировку. Мы в ней исправим это и перекомпилируем утилиту самим же Qt.

Новый способ решения проблемы

Вот только несколько дней назад всё работало на Visual Studio 2017 и Qt 5.11.1. И старый способ с перестраиванием jom проекта работал, но обновил обе программы, и способ работать перестал. Чьё обновление виновато — не знаю.

Поэтому придется обойтись без переделки jom. Алгоритм решения: переводим Visual Studio на английский язык и удаляем русский пакет полностью. И сообщения компилятора будут приходить не крякозябрами, а в виде нормальных английских сообщений.

Сейчас нет возможности проверить, но в прошлом (пару лет назад) при переводе Visual Studio на английский язык после установки Qt возникали проблемы с компиляцией. Так что лучше перевести на английский язык Visual Studio, а потом установить Qt (как у меня сейчас), но может быть уже всё пофиксили.

Итак, меняем язык интерфейса Visual Studio на английский (сообщения компилятора всё равно будут приходить на русском в виде крякозябр):

Переход в настройки Visual Studio

Изменение языка интерфейса

Запускаем установщик Visual Studio Installer:

Запуск Visual Studio Installer

Выбор изменения пакетов Visual Studio

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

Снятие галочки у русского пакета

Применение изменений

Ждем, когда Visual Studio всё удалит и, скорее всего, установит какие-то свои обновления. После этого перезапускаем Qt Creator. Теперь при компиляции сообщения будут приходить нормальными, но на английском:

Английские сообщения от компилятора

P.S. Правда после этого приложения под UWP перестали компилироваться и выдают ошибку вроде этой:

13:44:39: Could not start process "windeployqt.exe" D:\Harrix\Projects\QtProjects\untitled12\_build\release\untitled12.exe --qmldir D:\Harrix\Projects\QtProjects\untitled12
Error while building/deploying project untitled12 (kit: Qt 5.11.1 for UWP 64bit (MSVC 2017))
The kit Qt 5.11.1 for UWP 64bit (MSVC 2017) has configuration issues which might be the root cause for this problem.
When executing step "Run windeployqt"

Старый способ решения проблемы

Может потом старый способ заработает, так что оставлю его в статье.

Всё описанное ниже проводилось на Windows 10. Были установлены Visual Studio 2015 Community, Qt 5.8.0 под Visual Studio.

Выкачка исходных кодов jom

Выкачать можно с помощью консоли Git:

git clone https://github.com/qt-labs/jom

Если вы не знаете как выполнить эту команду, то перейдите по адресу https://github.com/qt-labs/jom и скачайте исходные коды программы с сайта:

Скачивание исходников с сайта

Изменение jom

Открываем Qt Creator. И там переходим к пункту открытия проекта:

Выбор пункта меню для открытия проекта

И в папке с исходниками jom находим файл jom.pro и открываем его:

Нахождение файла проекта

Выбор компилятора Visual Studio

Открытый проект

В подпроекте app находим файл main.cpp:

Нахождение файла main.cpp

Находим так функцию main:

Функция main

И там в самом начале этой функции добавляем строчки:

SetConsoleCP(1251);
SetConsoleOutputCP(1251);

Добавленные строчки

Сохраняем изменения Ctrl + S.

Компилировать будем в режиме Release:

Выбор режима Release

И компилируем наш проект:

Компилирование проекта

В процессе компиляции вы увидим несколько предупреждений. Это ничего страшного. Главное, чтобы ошибок не было.

Кстати, предупреждения будут с крякозябрами:

Предупреждения в виде крякозябр

Через некоторое время серый треугольник запуска проекта опять станет зеленым. Значит, проект скомпилировался:

Треугольник запуска опять зеленый

Находим скомпилированный jom файл

Закройте Qt.

Перейдите в папку, где у вас находятся скомпилированные файлы Qt.

По умолчанию, если у вас проект, например, называется HarrixTesting, то в папке HarrixTesting, где находится папка, появится папка наподобие такой: build-HarrixTesting-Desktop_Qt_5_5_0_MinGW_32bit-Release (это под MinGW компилятор пример):

Папка с скомпилированным проектом

В этой папке меня интересует папка bin:

Папка bin

Там должен быть файл jom.exe:

Файл jom.exe

Замена jom файла

Переходим в папку, где находится файл qtcreator.exe. У меня это папка C:\Qt\Qt5.8.0\Tools\QtCreator\bin:

Папка с родным jom.exe

Переименуйте его, чтобы на всякий случай не потерять, если что пойдет не так:

Переименование родного файла

И вставьте сюда скомпилированный jom.exe файл:

Копирование измененного файла

Всё. Теперь можете запускать Qt и проверять крякозябры. У меня они ушли:

Теперь крякозябр нет

Сейчас у меня стоит Qt, поставленный через онлайн установщик. И кроме основной версии Qt Creator у меня стоят Preview версии Qt Creator. Поэтому измененный файл кидаю и в эти папки, например, C:\Qt\Tools\Preview\Qt Creator 4.7.0-rc1\bin.<ul><li>Qt logo 2016.svg by Qt Project / (2019-01-26)</li></ul>