Беда с русской кодировкой в консоли Qt Creator

Если у вас стоит русская локаль в Windows и вы пытаетесь программировать в Qt Creator, то много-много лет вам предлагалось, предлагается сейчас и явно до скончания веков будет предлагаться изучать кракозябровый язык. Пример на картинке.

Очень "удобно"

Очень «удобно»

Проблема в том, что тулчейн VC++ отдаёт сообщения в кодировке DOS (866), а Qt Creator ожидает Windows 1251. Теоретически проблема легко фиксится, но как-то так выходит, что вот уже много лет всем участвующим в разработке Qt Creator на неё начхать, и он продолжает кракозябрить.

Поскольку жить так нельзя, народ изгаляется как может. Кто-то jom патчит. Кто-то в реестре ковыряется. Кто-то даже плагины в Qt Creator пишет. К сожалению, все эти решения страдают чрезмерной кривизной и/или геморностью.

Глядя на все эти танцы, я вначале приуныл. А потом подумал: ведь кодировка консоли наследуются вместе с консолью для всех процессов-потомков, разве нет? Значит, если для make задать кодировку, то все компиляторы-линковщики должны будут её увидеть; пишут они в консоль много лет как в Unicode, просто по дефолту кодировка у консоли досовская, вот и происходит перекодирование в неё.

Так что я тряхнул стариной, и заюзал qmake для благого дела:

Скопируйте себе как есть, без изменений, в pro файл вашего проекта. И будет вам счастье.

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