QString如何轉化為char * ?
阿新 • • 發佈:2018-12-20
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 );