Название: Кодировка консоли сборки Отправлено: poops от Декабрь 09, 2009, 13:02 Проблема в следующем, юзаю qtcreator 1.3 c QT 4.6 собранный под vs2008. Все ошибки компиляции выводятся в консоль сборки в ДОС'овской кодировке. Можно ли это как-то исправить, а то задолбался уже переключаться в консоль, чтоб ошибки посмотреть
Название: Re: Кодировка консоли сборки Отправлено: lit-uriy от Декабрь 09, 2009, 13:06 ошибки сборки генерит компилятор, странно что студия так себя ведёт.
Название: Re: Кодировка консоли сборки Отправлено: poops от Декабрь 09, 2009, 13:10 Понятно что компилятор, и тут по идее 2 варианта, либо в QtCreator'e поставить кодировку консоли в cp866, либо мс'овский nmake (или jom) настроить чтоб сообщения компиляции выводились в CP1251
Название: Re: Кодировка консоли сборки Отправлено: poops от Декабрь 09, 2009, 18:06 up
Название: Re: Кодировка консоли сборки Отправлено: b-s-a от Декабрь 10, 2009, 11:54 http://bugreports.qt.nokia.com/browse/QTCREATORBUG-316
Название: Re: Кодировка консоли сборки Отправлено: poops от Декабрь 10, 2009, 15:56 Спасибо, помогло
Название: Re: Кодировка консоли сборки Отправлено: Jo от Май 17, 2010, 17:33 Можешь написать как решил проблему?
Название: Re: Кодировка консоли сборки Отправлено: kuzulis от Июль 27, 2011, 17:47 Подниму тему.
Так какое же решение? 1. Пробовал в региональных настройках Win7 для приложений не поддерживающих юникод менять язык на английский - так креатор в консоли сборки стал выводить вопросики. >:( 2. Пробовал удалять %VSINSTALLDIR%\VC\bin\1049\clui.dll так студийный компилер выдает: Цитировать fatal error C1510: Cannot load language resource clui.dll. ЗЫ: Использую Windows 7 + MSVC 2010 + QtCreator 2.2.1 Название: Re: Кодировка консоли сборки Отправлено: b-s-a от Июль 27, 2011, 17:58 Решение есть тут: http://bugreports.qt.nokia.com/browse/QTCREATORBUG-316
Скачай jom.exe.zip, распакуй и замени jom.exe, что лежит в каталоге bin критора Название: Re: Кодировка консоли сборки Отправлено: kuzulis от Июль 27, 2011, 18:18 Cкачал - но архив битый: "неизвестный формат или ошибка в архиве".
--- Если же удалить расширение *.zip и оставить только *.exe, и заменить jom - то компилирует, но всё-равно крякозяблы (а если менять настройки Win7 на English - то сплошные знаки вопроса). Так что не помогает. Название: Re: Кодировка консоли сборки Отправлено: b-s-a от Июль 28, 2011, 10:56 Так, в Windows XP все работает.
Посмотри значение ключей OEMCP и ACP ветки реестра: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage Должно быть "866" и "1251" соответственно. Название: Re: Кодировка консоли сборки Отправлено: kuzulis от Июль 28, 2011, 17:20 Да, у этих ключей было:
OEMCP = 437 ACP = 1252 После исправления на: OEMCP = 866 ACP = 1251 всё заработало. Спасибо! PS: только настораживает разница в размерах jom ~1.5MB (родной) vs ~60KB (исправленный). Название: Re: Кодировка консоли сборки Отправлено: b-s-a от Июль 28, 2011, 22:24 upx рулит.
Название: Re: Кодировка консоли сборки Отправлено: andrew.k от Ноябрь 02, 2011, 15:01 Проверил ключи. У меня значения какие и должны быть.
OEMCP = 866 ACP = 1251 Скачал jom из вложения (размер 150кб) Проблема не устранилась. По-прежнему каракули. Название: Re: Кодировка консоли сборки Отправлено: b-s-a от Ноябрь 02, 2011, 16:24 Пинайте нокию через багтрекер... Сейчас в jom внесены серьезные изменения, которые полностью несовместимы с моим патчем. Поэтому, для исправления проблемы необходим целый ряд действий:
1. внесение изменений в Qt Creator, чтобы он поддерживал смену кодировки в output panes (панелях вывода) или в "читателе стандартных выводов приложений". 2. создание специального враппера, который будет декодировать вывод приложений, запускаемых через него (на данный момент в первую очередь необходимо преобразование ACP -> OEMCP, но наверняка потребуют чтобы это было параметром). 3. внесение изменений в jom/qmake/spec, чтобы запуск микрософтовского ilink.exe (или как его там) в Makefile шел через созданный враппер. Есть желающие все это (или хотя бы часть) сделать? Название: Re: Кодировка консоли сборки Отправлено: Alm3n от Февраль 03, 2012, 12:16 Проблема актуальна не только для nmake, но и недавно(?) появилась у mingw-make. Собственно, с последним обновлением компилятора началось то же самое. Пока ищу решение.
UPD: удалил MinGw и переустановил QtSDK. Не знаю, что именно, но что-то из этого помогло и кодировка вернулась. Название: Re: Кодировка консоли сборки Отправлено: b-s-a от Февраль 03, 2012, 12:30 nmake/mingw-make/jom тут непричем. Qt изначально не поддерживает кодировку виндовой консоли (OEM).
Название: Re: Кодировка консоли сборки Отправлено: Alm3n от Февраль 03, 2012, 12:42 nmake/mingw-make/jom тут непричем. Qt изначально не поддерживает кодировку виндовой консоли (OEM). После обновления MinGW частично вывод сборки был на русском. Как это объяснить?Название: Re: Кодировка консоли сборки Отправлено: Reklats от Июнь 30, 2012, 02:25 Решена проблема! Работает в том числе и на QtCreator 2.5.0
Скачивайте тут (http://lab113.ru/qtcreator_kodirovka.php) утилитку и всё! Даже растрогался от радости :D Название: Re: Кодировка консоли сборки Отправлено: Alm3n от Июль 02, 2012, 19:06 Решена проблема! Работает в том числе и на QtCreator 2.5.0 Из криокамеры выпустили?Скачивайте тут (http://lab113.ru/qtcreator_kodirovka.php) утилитку и всё! Даже растрогался от радости :D Под MinGW проблема всё ещё актуальна. Жду озарения разработчиков в 5й версии. Название: Re: Кодировка консоли сборки Отправлено: Reklats от Июль 02, 2012, 21:37 Alm3n
Нехрен хамить, умник. Проблема с mingw только у вас. Вывод консоли gcc отродясь был на английском. Если у вас не так - скриншоты в студию. Я вот тоже могу заявить, что mingw мне на латыни в консоль выводит :). Если же при сборке студией, у вас не было проблем с кодировкой - поделились бы решением ибо всё, что выше не работает на 10й студии + креатор 2.5.0 + win7. Я нашёл рабочее решение и поделился им. Название: Re: Кодировка консоли сборки Отправлено: DmitryM от Июль 03, 2012, 00:12 Хвала святым яйцам, я использую Eclipse+MinGW ;D
Название: Re: Кодировка консоли сборки Отправлено: windnnw от Январь 29, 2013, 11:00 2. Пробовал удалять %VSINSTALLDIR%\VC\bin\1049\clui.dll так студийный компилер выдает: Цитировать fatal error C1510: Cannot load language resource clui.dll. ЗЫ: Использую Windows 7 + MSVC 2010 + QtCreator 2.2.1 В общем, если кому еще актуально: 1. В MSVC 2010 загрузках выбрал английский и установил поверх установленного такого же русского. 2. Удалил %VSINSTALLDIR%\VC\bin\1049\clui.dll Все стало ОК. Название: Re: Кодировка консоли сборки Отправлено: lit-uriy от Февраль 03, 2013, 17:04 >>После обновления MinGW частично вывод сборки был на русском. Как это объяснить?
это MinGW использует кодировку IBM866, или только часть MinGW (компилятор, линкер,...) Название: Re: Кодировка консоли сборки Отправлено: jinrou85 от Декабрь 26, 2013, 11:13 Довольно простой способ с костылем от Микрософта.
Этап сборки Сборка: jom.exe Заменить на Особый: chcp 1251 > nul && jom.exe Данный костыль действует только на текущий проект, но не требует выкачивания подозрительных архивов, копания в реестре или изменения в файлах конфигурации креатора. Название: Re: Кодировка консоли сборки Отправлено: Alex Custov от Декабрь 26, 2013, 19:22 Данный костыль действует только на текущий проект, но не требует выкачивания подозрительных архивов, копания в реестре или изменения в файлах конфигурации креатора. Не работает. Qt Creator 3.0.0. Я использую wrapper в виде бат файла chcp-wrapper.bat: Код: @echo off В креаторе в настройках проекта ставим "Заменить mingw32-make" на "chcp-wrapper.bat", "Параметры make" в "mingw32-make" или в "jom" в зависимости от того кто что использует. Название: Re: Кодировка консоли сборки Отправлено: b-s-a от Январь 09, 2014, 11:01 https://bugreports.qt-project.org/browse/QTCREATORBUG-316
Название: Re: Кодировка консоли сборки Отправлено: Susenin от Январь 23, 2014, 16:16 Я кодировку меняю в реестре: ищу строчки OEMCP и 866 меняю на 1251. Обычно 2 совпадения.
Я что-то делаю неправильно? Народ тут пишет патчи ... Да, у меня Windows 7 и msvс2012. Update. Забыл еще один пункт. Если его не сделать, в консоли (та которая cmd.exe) будут кракозябы. В редакторе реестра идем в раздел HKEY_CURRENT_USER -> Console. Создаем там новый строковый параметр с именем "FaceName". Присваиваем ему значение "Lucida Console". Параметр "FontFamily" меняем на 0x36. |