ЗАО «ЗЭО»

Техническая поддержка пользователей => ОС Linux, U-Boot => Тема начата: nephrael от 22 Марта, 2010, 10:48:56

Название: Linux , qt4 и Русский язык
Отправлено: nephrael от 22 Марта, 2010, 10:48:56
в чем может быть причина кривого вывода русского языка
в программе есть код

    QTextCodec *codec = QTextCodec::codecForName("UTF-8");
    QTextCodec::setCodecForLocale(codec);
    QTextCodec::setCodecForTr(codec);
    QTextCodec::setCodecForCStrings(codec);

    qDebug() << codec->toUnicode("Адрес");
    qDebug() << "Адрес";
    qDebug() << QString("Адрес");
    qDebug() << QString::fromLocal8Bit("Адрес");
    qDebug() << QString::fromLocal8Bit("Адрес").toLocal8Bit();
    qDebug() << QString::fromLocal8Bit("Адрес").toAscii().toHex();

вывод в консоль
"�А�д�р�е�с"
�А�д�р�е�с
"�А�д�р�е�с"
"�А�д�р�е�с"
"�А�д�р�е�с"
 "d090d0b4d180d0b5d181"

вбивается d0 и d1 между буквами

переменные установлены:
LC_ALL=ru_RU.UTF-8
LANG=ru_RU.UTF-8
Название: Re: Linux , qt4 и Русский язык
Отправлено: nephrael от 22 Марта, 2010, 11:50:08
так , вывод в консоль русского текста я добился
осталось только , чтобы на форме текст нормально отображался
Название: Re: Linux , qt4 и Русский язык
Отправлено: nephrael от 22 Марта, 2010, 12:26:39
все решено
    QApplication a(argc, argv);
    QTextCodec *localcoder = QTextCodec::codecForName("UTF-8");
    QTextCodec::setCodecForTr(localcoder);
    QTextCodec::setCodecForCStrings(localcoder);
    QTextCodec::setCodecForLocale(localcoder);


    MainWindow *GenForm = new MainWindow;
    QFont serifFont("DejaVu Sans", 10, QFont::Bold);
    GenForm->setFont(serifFont);
    GenForm->runAllThreads();