Russian Qt Forum
Сентябрь 30, 2024, 14:32 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QtCreator + GDB + кириллица = ?  (Прочитано 4280 раз)
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« : Май 02, 2011, 16:48 »

Ставлю кодек, совпадающий с кодировкой исходного кода:
Код:
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf8"));
или
Код:
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("cp1251"));
Далее делаю отладочный вывод:
Код:
qDebug("тест");

При обычном запуске всё в порядке:


Но если запускать в отладке, то вывод начинается не в той кодировке:


Ну и собственно вопрос - можно ли это исправить?
Записан
Vass
Гость
« Ответ #1 : Май 02, 2011, 21:00 »

Винда? Насколько я помню у виндов до мих пор в консолях досовская кодировка.

P.S. Не латинница в исходниках (а уж тем более в дебаг выводе) - моветон.
Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #2 : Май 02, 2011, 22:19 »

Винда?
Риторическй вопрос? "C:\...", "cp1251" - какие ещё могут быть варианты?
Насколько я помню у виндов до мих пор в консолях досовская кодировка.
Да, CP866. Но интересует не она, а консоль приложения в самом Qt Creator'е.
P.S. Не латинница в исходниках (а уж тем более в дебаг выводе) - моветон.
Ситуация такая: cистема пишет лог в файл. Лог должен быть на русском.
Для отладки удобно, что бы теже самые сообщения выдавались ещё и в консоль.
Нечто вроде:
Цитировать
void log( const QString& msg )
{
    ... // вывод в файл
#ifdef QT_DEBUG
    qDebug( msg.toAscii().data() );
#endif
}
Никакими комбинациями QTextCodec::setCodecForCStrings, QTextCodec::setCodecForLocale, QString::toAscii(), QString::toLocal8Bit(), QString::toUtf8(), QString::utf16(), которые я успел проверить, GDB не удалось заставить выводить кириллицу. Без него всё выводится отлично.

P.S. Почтовый декодер подсказывает, что если без GDB всё нормально, то с ним кодировка перепутана следующим образом: CP1252 → CP1251. Но как это исправить (если возможно) я не понимаю.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.167 секунд. Запросов: 22.