天天看點

Qt字元串編碼處理

1、Qt字元串編碼說明

從Qt操作得到的字元串都是utf-8

//需要頭檔案#include <QTextCodec>
QTextCodec *codec = QTextCodec::codecForName("GBK"); 

//fileName為QString類型
//codec->fromUnicode();把utf-8轉化為GBK,傳回值為QByteArray(位元組數組)
//QByteArray.data()位元組數組轉換為char *
char *file = codec->fromUnicode(fileName).date();       

Qt控件顯示中文,必須是utf-8才能正常顯示

//假如從檔案中讀取到中文内容為gbk編碼
fgets(buf, sizeof(buf), fp); 

//需要頭檔案#include <QTextCodec>
QTextCodec *codec = QTextCodec::codecForName("GBK"); 

//把一個GBK編碼的字元串轉化utf-8,同時将char *轉換為QString類型
QString str = codec->toUnicode(buf);       

2、QString和char *轉換

//QString為Qt字元串類型
QString str = "hello world";
//QString -> const char *
const char *p = str.toStdString().data(); 

char *p = "hello world";
QString str = p; //char * -> QString      

繼續閱讀