ЗАО «ЗЭО»
Техническая поддержка пользователей => ОС Linux, U-Boot => Тема начата: 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
-
так , вывод в консоль русского текста я добился
осталось только , чтобы на форме текст нормально отображался
-
все решено
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();