QString没有提供直接转换的成员函数,所以得借助外力来解决,方法如下:
1、利用std::string作为桥梁
首先,使用QString的成员函数toStdString(),然后再利用std::string的c_str()函数,示例:
QString string1;
char string2[32];
std::string string3 = string1.toStdString();
string2 = dome2.c_str();
2、利用QByteArray作为桥梁,示例:
QString string1 = "Test";
QByteArray byteArray = string1.local8Bit();
const char * string2 = byteArray.data();
3、指定编码,利用QTextCodec作为桥梁,示例:
char str[64];
QTextCodec *textcod = QTextCodec::codecForName("GBK");
QCString string1 = textcod ->fromUnicode(mystring);
strcpy(str,string1);
char *转化为QString相对简单很多,示例:
QString string1 = QString::fromLocal8Bit( charString );