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("支持中文"))));


相关文章推荐

QString、string和C字符串相互转换

1. std::string转换成QS QString str = QString::fromStdString();

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...

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

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

QString包含中文时与char *转换

方法1: 添加GBK编码支持: #include QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK")); QTextCodec:...

QString转换为const char*(QFileDialog得到的QString文件路径(含中文)转换为fstream可用的const char*文件路径)以及解决Qt中文字符串乱码的一种思路

对于不含中文的文件路径,可用如下代码解决: QString path=QFileDialog::getOpenFileName(this,QObject::tr("set filepath")); ...

QString和string互相转换中文字符

string -> QString 1 std::string strStd = "可可西"; 2 QString strQ = QString::fromLocal8Bit(strStd.c_str...

Qt入门之utf8与unicode转换

转载自http://m.blog.csdn.net/blog/u011791262/25040271 一、几种编码的了解 参考博客http://blog.csdn.net/polarm...

Qt中QString转string中文乱码问题

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

Qt QString 中文 char* UTF-8 QByteArray QTextCodec unicode gb2312 GBK 乱码与转码问题

代码如下:如果不不设全局的字符集是utf-8,那么网上一般的方法是可以转的。如下程序中 #define DD 1的情况下;但是如果设置了全局的utf-8,再用以前的方法: QByteArra...

解决Android Volley解析json,String数据中文乱码的问题

转自http://www.bubuko.com/infodetail-712004.html ,非常感谢这篇文章,帮我解决了此问题,so记录一下。 我遇到的问题基本上和文章中写的一样,只不过...
  • aengui
  • aengui
  • 2015年11月12日 20:55
  • 1155
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:QT中QString与string的转化,解决中文乱码问题
举报原因:
原因补充:

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