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);

 

posted @ 2020-02-27 16:31  补码  阅读(1204)  评论(0编辑  收藏  举报