Qt的QString,QByteArray,char *相互转换
1、QString转换为QByteArray
QString str = "123456"; QByteArray byte = str.toUtf8(); // 转换为Utf8格式 byte.toLocal8Bit(); // 转换为本机编码格式
2、QByteArray转换为char *
QByteArray byte = "123456"; char *c; c = byte.data();
3、char *转换为QString
char *c = "123456"; QString str = QString(c);
4、QString转换为char *(方法一)
最简单的方法是方法1和2整合
QString str = "123456"; QByteArray byte = str.toUtf8(); // 转换为Utf8格式 char *c; c = byte.data();
5、QString转换为char *(方法二)
有时候遇到有中文的情况可能无法识别,可以先将QString转换为标准库string类型,然后再将string转换为char*
QString Qstr; std::string str = Qstr.toStdString(); const char* c = str.c_str();
6 、QByteArray转换为QString
QByteArray buf = "123456"; QString str = QString(buf);
7、unsigned char转换为QString
unsigned char ch[10] = "sssssssss"; QString str = QString().asprintf("%s", ch);