QT中字符串编码的选用

源代码中不可避免出现各种各样的字符串, 

(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-2008 

http://stackoverflow.com/questions/4300612/qt-can-not-write-to-a-unicode-file-unicode-strings 

原文地址:https://www.cnblogs.com/kevinzhwl/p/2655584.html