QByteArray QString Base64 UTF8

QByteArray bytearray64 = jsonValue.toString().toUtf8();
QByteArray bytearraytheme = QByteArray::fromBase64(bytearray64);

                        QString temp = QString::fromUtf8(bytearraytheme);

  1. QByteArray cstr("abcd");  
  2. QString s = cstr;   
  3.   
  4. QByteArray cstr("abcd");  
  5. QString s;  
  6. s.prepend(cstr);  
  7.   
  8. QString s("hello");  
  9. QByteArray cstr = s.toAscii();  
  10.   
  11. QString s("hello");  
  12. QByteArray cstr = s.toLatin1();  

QByteArray类同样不以'\0'为结尾:如

[cpp]  view plain  copy
 
  1. QByteArray s;  
  2. s.resize(5);  
  3. s[0] = '1';  
  4. s[1] = '2';  
  5. s[2] = '3';  
  6. s[3] = '\0';  
  7. s[4] = 'a';  
  8.   
  9. cout << s << endl;  

第一种,数据流的方式,这里只说从QByteArray转向QString。
QByteArray encodedString = "xxx";
QTextCodec *codec = QTextCodec::codecForName("KOI8-R");
QString string = codec->toUnicode(encodedString);
第二种,常用的,网上看到的。
//常用参数类型:char *字符串, QByteArray字符数组, QString字符串
//需要转换:char * ---转--- QByteArray ---需要调用QByteArray类的构造函数
char*     --------------QByteArray(const char*)-----------> QByteArray
char* str;
QByteArray byte(str);
char*     --------------QString(const char*)-------------->QString
char* str;
QString string(str);
QByteArray   -------------data()-------------------->char*
QByteArray byte;
char* str = byte.data();
QByteArray ------------QString()------------------->QString
QByteArray byte;
QString string(byte);
QString --------------toAscii()--------------------> QByteArray
QString string;
QByteArray byte = string.toAscii();
QString -------------qPrintable()------------------>char*
QString string;

char* str = qPrintable(string);


你可能感兴趣的:(Qt)