Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [Qt] вывести русские буквы на консоль


Автор: lukash256 16.11.2010, 17:58
народ,  выручайте !    уже помойму всё перепробовал.
нужно на консоль Qt 4.7 вывести русский текст.   делаю так

void HellowSomebody::sayhellow(QString s)  {
  QTextStream out(stdout);
   out.setCodec("Windows-1251");
    out << s<<endl;
}

выводит гаргозябы

в настройках проекта (project -> editor settings  ;   edit -> set encoding )    везде стоит   Windows-1251
все тожесамое зделал и с UTF-8 и с IBM 866     и никак.   либо вопросики либо гаргозябы

Автор: borisbn 16.11.2010, 18:04
Народ!!! Ну почему не воспользоваться поиском ? Уже стопятьсот раз поднималась тема.
см. http://forum.vingrad.ru/index.php?showtopic=101433&view=findpost&p=771097

Автор: SABROG 16.11.2010, 18:50
Так попробуй:

//main.cpp
Код

    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("Windows-1251"));


Код

void HellowSomebody::sayhellow(const QString& s)  {
  QTextStream out(stdout);
#if defined(Q_WS_WIN)
   out.setCodec("IBM866");
#endif
    out << s<<endl;
}

Автор: lukash256 17.11.2010, 01:50
ОГРОМНОЕ СПАСИБО!!!   код валидно работает под win32. нет сейчас возможности проверить под линуксом.   
тоже должно быть всё норм ?

Автор: SABROG 17.11.2010, 09:10
Цитата(lukash256 @  17.11.2010,  01:50 Найти цитируемый пост)
тоже должно быть всё норм ? 

Не помню, чтобы под линуксом было 2 разные кодировки под консоль и GUI, так что должно быть всё нормально. Правда исходники я бы лучше в UTF-8 перевел.

Автор: lukash256 21.11.2010, 23:37
ещо рас спасибо!   просто спас!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)