QT中QString与string的转化,解决中文乱码问题

转载 2016年08月29日 09:42:09

转载自:http://blog.csdn.net/definewl/article/details/47017681


在QT中,使用QString输出到控件进行显示时,经常会出现中文乱码,网上查了一圈,发现大部分都是针对QT4增加4条语句:


QTextCodec *codec = QTextCodec::codecForName("UTF-8");

QTextCodec::setCodecForTr(codec);

QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForCStrings(codec);

我使用的是QT5,已经不支持如此设置了,而且这样设置也会存在很多问题。其实,还有更简单的方法,就是使用我写的如下两个函数:
QString str2qstr(const string str)
{
	return QString::fromLocal8Bit(str.data());
}

string qstr2str(const QString qstr)
{
	QByteArray cdata = qstr.toLocal8Bit();
	return string(cdata);
}


在需要使用中文QString时,先用string写一个,然后转过去就可以啦,例如:
qlabel->setText(QString(str2qstr(string("支持中文"))));


举报

相关文章推荐

QT中QString与string的转化,解决中文乱码问题

在QT中,使用QString输出到控件进行显示时,经常会出现中文乱码,网上查了一圈,发现大部分都是针对QT4增加4条语句: QTextCodec *codec = QTextCodec::co...

Qt中QString转string中文乱码问题

QString与string相互转换可以用如下方法:QString::toStdString(); QString::fromStdString();数字转QString:QString::numbe...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

QString和string的相互转换及乱码处理

转载: http://yz0515.com/2017/02/16/QString%E5%92%8Cstring%E7%9A%84%E7%9B%B8%E4%BA%92%E8%BD%AC%E6%8D%A...

QT5中QString与string的转化,解决中文乱码问题

QString str2qstr(const string str) { return QString::fromLocal8Bit(str.data()); ...

QT解决中文乱码问题(1)

解决Qt中文乱码以及汉字编码的问题(UTF-8/GBK) http://blog.csdn.net/libaineu2004/article/details/19245205 ...

Qt解决中文乱码问题(2)

首先呢,声明一下,QString 是不存在中文支持问题的,很多人遇到问题,并不是本身 QString 的问题,而是没有将自己希望的字符串正确赋给QString。 很简单的问题,"我是中文"这样写的时...

QT QString与中文问题

首先呢,声明一下,QString 是不存在中文支持问题的,很多人遇到问题,并不是本身 QString 的问题,而是没有将自己希望的字符串正确赋给QString。[喝小酒的网摘]http://blog....

QString 与中文问题

转自 http://hi.baidu.com/dbzhang800/item/431f800fcb653e6dd55a1142 首先呢,声明一下,QString 是不存在中文支持问题的,很多...

Qt 解决中文乱码问题

也许你在用这个方法实现中文化,但它确实不够严谨 Laguage» C++ Title» 出现频率最高的办法 #include   int main(int argc, char *ar...

彻底解决Git中文乱码问题

现在随着Githut和SNS的流行,Social Code也像Facebook在世界中流行一样,在程序猿中流行开来。而且有犹如星星之火,在程序猿中燎原开来。有Linus这样的大牛作为发明人,有Linu...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)