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

转载自: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
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

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

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭