码迷,mamicode.com
首页 > 其他好文 > 详细

5、QT 中文乱码

时间:2015-02-14 18:50:03      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:

在 Qt 代码的 const char* 这种窄字符串中使用中文就会发现显示的全是乱码.

 

在 Qt5 之前, 大多数人通过下面这三句代码来解决:

QTextCodec::setCodecForTr(...)
QTextCodec::setCodecForCStrings(...)
QTextCodec::setCodecForLocale(...)
 
然后这三句代码是有安全隐患的, 下面的文章都有说明:

 

但是在 Qt5 之后, 移除了 setCodecForTr 函数, 之前的 setCodecxxx 各种副作用都不再存在, 而且中文问题更为简单:

QString s1 = QStringLiteral("中文");
QString s2 = QString::fromWCharArray(L"中文");

 

这两种写法都是可以的.

技术分享
 
因为在 VS 中鼓励大家使用 TEXT/_T 宏而不用L, 所以 QStringLiteral 用的相对要多点.
 

关于 Qt 中文的问题, 可参考下面两篇文章:

zz 解释QStringLiteral

QString 乱谈(3)-Qt5与中文

5、QT 中文乱码

标签:

原文地址:http://www.cnblogs.com/hanxiao-martin/p/4292020.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!