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


Автор: sergey_85 19.5.2010, 12:33
Привет!

Небольшой вопрос по кодировкам. Загружаю из внешнего источника строки в QString, далее перевожу их в char *, чтобы передать в QTranslator, но при конвертации результат - кракозябры!

Код


QString s = "привет!";
const *s1 = s.toAscii(); //здесь результат непонятный мусор вместо слова привет

Автор: AndAnd 20.5.2010, 08:41
Уже не раз этот вопрос был на этом форуме.

main.cpp
Код


#include <QTextCodec>

int main(int argc, char *argv[])
{
      QTextCodec::setCodecForCStrings(QTextCodec::codecForName("windows-1251"));

      QApplication a(argc, argv);
.....
}


Автор: sergey_85 20.5.2010, 09:30
хорошо, тогда еще вопрос есть такой код, в QLabel выводиться опять непонятно что, почему?

файл кода сpp сохранен в кодировке utf-8

Код


    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));

    ui.lbText->setText( "Привет!" ); //в лейбл выводиться мусор!!!


но если сделать так, то все ок! (файл кода сpp сохранен в кодировке utf-8)
Код


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

    ui.lbText->setText( "Привет!" ); //все ок!

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