On 22 April 2012 10:36, Loaden <loa...@gmail.com> wrote: > The question is: I don't want use utf-8 code in source files, like this: >> >> QString str = QString::fromUtf8("\xc3\xb7"); > > > I just want directly use the "÷" in source file. And I don't need know what > is the utf-8 code of "÷". Like this: >> >> QString str = QString::fromUtf8("÷");
You can do that -- as I said in my link, that requires that the compiler emits UTF-8 as the execution charset for that literal. gcc simply leaves the source bytes untrasformed if you don't pass the various -fexec-charset options, so all it's required is that your source code is encoded using UTF8-8. (I don't have any clue about MSVC). > This code works fine with Qt4, and the source files use 'UTF-8 with bom'. > (B.T.W ASCII/UNICODE format of the source file works well too). > >> int main(int argc, char *argv[]) >> { >> #ifdef Q_OS_WIN >> QTextCodec *codec = QTextCodec::codecForName("GBK"); >> QTextCodec::setCodecForLocale(codec); >> #if QT_VERSION < 0x050000 >> QTextCodec::setCodecForCStrings(codec); >> QTextCodec::setCodecForTr(codec); >> #endif >> #endif >> QApplication app(argc, argv); >> QString str = QString::fromAscii("÷"); >> QTextStream out(stdout); >> qDebug() << "÷"; >> out << str << endl; >> QLabel *label = new QLabel(str + QObject::tr("÷")); >> label->show(); >> return app.exec(); >> } > But it's does't work with Qt5. Again: stop using fromAscii, tr, etc.; use the equivalents that take UTF-8 (fromUtf8, trUtf8, etc.). -- Giuseppe D'Angelo _______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development