ЗАО «ЗЭО»

Пожалуйста, войдите или зарегистрируйтесь.

Расширенный поиск  

Новости:

Автор Тема: Linux , qt4 и Русский язык  (Прочитано 5149 раз)

0 Пользователей и 1 Гость просматривают эту тему.

nephrael

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 13
Linux , qt4 и Русский язык
« : 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
« Последнее редактирование: 22 Марта, 2010, 11:04:57 от nephrael »
Записан

nephrael

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 13
Re: Linux , qt4 и Русский язык
« Ответ #1 : 22 Марта, 2010, 11:50:08 »

так , вывод в консоль русского текста я добился
осталось только , чтобы на форме текст нормально отображался
Записан

nephrael

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 13
Re: Linux , qt4 и Русский язык
« Ответ #2 : 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();
Записан