QTextCodec *codec = QTextCodec::codecForName("utf-8");QTextCodec::setCodecForTr(codec);QString queryString = QObject::tr("тест");qDebug() << QObject::tr("тест");qDebug() << queryString.toUtf8();queryString = "тест";qDebug() << queryString;qDebug() << QString::fromUtf8("тест");
QTextCodec *codec = QTextCodec::codecForName("IBM866"); QTextCodec::setCodecForTr(codec); QString queryString = QObject::tr("тест"); qDebug() << QObject::tr("тест"); qDebug() << queryString.toUtf8(); queryString = "тест"; qDebug() << queryString; qDebug() << QString::fromUtf8("тест");
QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8"));queryString = tr("INSERT INTO data (name) VALUES ('Макс');");
C++ (Qt)QTextCodec *consoleCodec = QTextCodec::codecForName("IBM866");QTextStream error(stderr);error.stCodec(consoleCodec);// чтобы правильно преобразовать внутреннее представление Qt (UTF-16) к консоли // Если исходник в UTF8QString queryString = QObject::trUtf8("тест");// чтобы правильно преобразовать символы к внутреннему представлению Qt (UTF-16) error << queryString;
C++ (Qt)#include <QtCore/QtGlobal>#include <QtCore/QDebug>#include <QtCore/QTextCodec>#include <QtCore/QCoreApplication> int main(int argc, char *argv[]){ QCoreApplication a(argc, argv);#if defined(Q_WS_WIN) if (QLocale::system().country() == QLocale::RussianFederation) QTextCodec::setCodecForLocale(QTextCodec::codecForName("IBM866"));#endif #if 1 qDebug() << QObject::trUtf8("тест");#else QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); QTextCodec::setCodecForTr(QTextCodec::codecForCStrings()); qDebug() << QObject::tr("тест");#endif // ... return a.exec();}
D:/soft/Qt/mkspecs/features/device_config.prf(12): Querying unknown property CROSS_COMPILElupdate warning: Codec for tr() 'UTF-8' disagrees with existing file's codec 'ISO-8859-1'. Expect trouble.Updating 'ru.ts'... Found 18 source text(s) (0 new and 18 already existing)