1在QT中,使用QString输出到控件进行显示时,经常会出现中文乱码,网上查了一圈,发现大部分都是针对QT4增加4条语句:</span> 2[cpp] view plain copy 3QTextCodec *codec = QTextCodec::codecForName("UTF-8"); 4 5QTextCodec::setCodecForTr(codec); 6 7QTextCodec::setCodecForLocale(codec); 8QTextCodec::setCodecForCStrings(codec); 9 10 11我使用的是QT5,已经不支持如此设置了,而且这样设置也会存在很多问题。 其实,还有更简单的方法,就是使用我写的如下两个函数: 12 13[cpp] view plain copy 14QString str2qstr(const string str) 15{ 16 return QString::fromLocal8Bit(str.data()); 17} 18 19string qstr2str(const QString qstr) 20{ 21 QByteArray cdata = qstr.toLocal8Bit(); 22 return string(cdata); 23} 24 25在需要使用中文QString时,先用string写一个,然后转过去就可以啦,例如: 26 27[cpp] view plain copy 28qlabel->setText(QString(str2qstr(string("支持中文"))));
QT中QString与string的转化,解决中文乱码问题
Stella981
2021-10-12
1244 0 0
点赞
收藏
评论区
加载中...