Название: QtCreator + GDB + кириллица = ? Отправлено: LisandreL от Май 02, 2011, 16:48 Ставлю кодек, совпадающий с кодировкой исходного кода:
Код: QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf8")); Код: QTextCodec::setCodecForCStrings(QTextCodec::codecForName("cp1251")); Код: qDebug("тест"); При обычном запуске всё в порядке: (http://habreffect.ru/files/283/d1eb3d034/1.png) Но если запускать в отладке, то вывод начинается не в той кодировке: (http://habreffect.ru/files/6b3/587022fc9/2.png) Ну и собственно вопрос - можно ли это исправить? Название: Re: QtCreator + GDB + кириллица = ? Отправлено: Vass от Май 02, 2011, 21:00 Винда? Насколько я помню у виндов до мих пор в консолях досовская кодировка.
P.S. Не латинница в исходниках (а уж тем более в дебаг выводе) - моветон. Название: Re: QtCreator + GDB + кириллица = ? Отправлено: LisandreL от Май 02, 2011, 22:19 Винда? Риторическй вопрос? "C:\...", "cp1251" - какие ещё могут быть варианты?Насколько я помню у виндов до мих пор в консолях досовская кодировка. Да, CP866. Но интересует не она, а консоль приложения в самом Qt Creator'е.P.S. Не латинница в исходниках (а уж тем более в дебаг выводе) - моветон. Ситуация такая: cистема пишет лог в файл. Лог должен быть на русском.Для отладки удобно, что бы теже самые сообщения выдавались ещё и в консоль. Нечто вроде: Цитировать void log( const QString& msg ) Никакими комбинациями QTextCodec::setCodecForCStrings, QTextCodec::setCodecForLocale, QString::toAscii(), QString::toLocal8Bit(), QString::toUtf8(), QString::utf16(), которые я успел проверить, GDB не удалось заставить выводить кириллицу. Без него всё выводится отлично.{ ... // вывод в файл #ifdef QT_DEBUG qDebug( msg.toAscii().data() ); #endif } P.S. Почтовый декодер подсказывает, что если без GDB всё нормально, то с ним кодировка перепутана следующим образом: CP1252 → CP1251. Но как это исправить (если возможно) я не понимаю. |