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 与 char* 转换

网上百度了很多的
  • u012564085
  • u012564085
  • 2014年08月19日 16:14
  • 4357

QString中文乱码

QString中文乱码 处理方法:1. QString str = QString::fromLocal8Bit("中文"); // vs2008 vs20052. QString str ...
  • imxiangzi
  • imxiangzi
  • 2016年03月02日 17:53
  • 2115

解决你的乱码难题(Qt转码与char和utf8的互转)

在跨平台的开发中,字符串的转码显得相当重要,稍有不慎,将会出现乱码的情况,在这里,首先说一下Qt的QString中几个关于转码的函数: (1)QByteArray toUtf8() const; ...
  • Shado_walker
  • Shado_walker
  • 2017年02月21日 22:02
  • 1021

QT中QString 类的使用

QString 类中各函数的作用。 一、字符串连接函数。 1、QString也重载的+和+=运算符。这两个运算符可以把两个字符串连接到一起。     2、QString的append()函数...
  • sbisyju
  • sbisyju
  • 2013年04月13日 15:45
  • 37588

“QT中QString 转const char*为乱码或为空的问题 ”之解决方案

接着前篇:http://blog.csdn.net/bzhxuexi/article/details/17111903 在前篇中遇到了一个问题,当时没解决,今天终于找到了解决方法,我在网上看到了这样...
  • bzhxuexi
  • bzhxuexi
  • 2013年12月04日 17:26
  • 5262

二进制std::string 与QString转换的问题

std::string 存的二进制数据,与QString互转(由于某种原因需要用QString传递),暂时想到的方法,而且可行 std::string te...
  • tufei2963
  • tufei2963
  • 2013年05月29日 21:36
  • 1991

中文QString转成char类型中造成乱码的原因

QString内部采用的是unicode编码,但是unicode编码有很多种,在实际应用时应制定具体的编码形式,常见的有GBK、GB2312和UTF-8等。 UTF-8是解决国际上字符的一种多字节编...
  • lggrief
  • lggrief
  • 2016年10月12日 13:46
  • 546

有关 QString::toStdString() 使用的一个细节问题

http://www.devbean.net/2014/04/about-qstring-tostdstring/
  • muzi_csd
  • muzi_csd
  • 2014年04月25日 15:26
  • 1010

QT中QString 类的使用--获取指定字符位置、截取子字符串等

QT中QString 类的使用 QString 类中各函数的作用。 一、字符串连接函数。 1、QString也重载的+和+=运算符。这两个运算符可以把两个字符串连接到一起。      2、QSt...
  • haiross
  • haiross
  • 2015年11月16日 09:49
  • 46427

QT学习笔记19数据库操作

1 数据库操作 Qt 提供了 QtSql 模块来提供平台独立的基于 SQL 的数据库操作。这里我们所说的"平台独立",既包括操作系统平台,有包括各个数据库平台。另外,我们强调了"基于 SQL",因为 ...
  • lzjsqn
  • lzjsqn
  • 2017年02月09日 23:33
  • 718
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:QT中QString与string的转化,解决中文乱码问题
举报原因:
原因补充:

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