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 

posted @ 2012-08-25 00:56  kevinzhwl  阅读(384)  评论(0编辑  收藏  举报