源代码中不可避免出现各种各样的字符串,
(1) QLatin1String
QLatin1String类对US-ASCII/Latin-1编码的字符串进行了封装。
形式:QLatin1String("test_asiic");
该类字符串:最终用户不可见;在系统运行中需要;内容固定是Latin1,也就是一般说的英文。
例子:app.sendMessage(QLatin1String("show_window"), 2000);//signal/slot中的“消息”字符串;
QIcon(QLatin1String(":/qrc/logo.pgn"));//qrc资源中路径;
qDebug()<<QLatin1String("debug info");//一些用与qDebug输出的信息
其他可以100%确定的为Latin1的字符;
(2) tr()/trUtf8()/QT_TR_NOOP
用作国际化、多语言支持。该宏有较大损失,不宜过多使用。
形式:QObject::tr("text_tr");//或者其他任何继承自QObject的类
该类字符串: 用于且仅用于用户交互中的文字,
(3)QString::fromXXX()
http://stackoverflow.com/questions/688760/how-to-create-a-utf-8-string-literal-in-visual-c-2008http://stackoverflow.com/questions/4300612/qt-can-not-write-to-a-unicode-file-unicode-strings