qt char*与QString互转
一、QString转char*
QString转char*有很多方法
方法1:gbk编码
QString qTest("abc");
char* pTest;
QByteArray baTest = qTest.toLatin1();
pTest = baTest.data();
方法2:utf编码
QString aaa = "jdpoafjeowqfq";
QByteArray byteArr = aaa.toUtf8();
const char* bbb = byteArr.data();
注意:之所以没有直接使用aaa.toUtf8().data();是因为在转回QString的时候出现很多问号??。建议分开处理,多写一行代码。
方法3:有中文的情况下
QString sTest("abc中文");
std::string ssTest = sTest.toStdString();
const char* ch = ssTest.c_str();
二、char*转QString
主要看是哪种编码方式转的了
方法1:对应上文的方法1
QString::fromLocal8bit();
方法2:对应上文的方法2
QString::fromUtf8();
还有一些其他的方法:
const char* timestr= "nfiuahfia";
//法1
QTextCodec *codec = QTextCodec::codecForName("");
QString str = codec->toUnicode(timestr);
//法2
QString ddd = QLatin1String(timestr)