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