目錄一、qbytearray與qstring互轉
qbytearray與qstring互轉極為簡單,二者從本質上類似,都是連續儲存,區別是前者可以存無法顯示的字元,後者只存可顯示的字元。如qbytearray可以存0x00-0x19,而qstring則儲存如0x30等可顯示字元(0x20-0x7e)
//qbytearray轉為qstring示例:
qbytearray ba("abc123");
qstring str = ba; //或str.prepend(ba);
qdebug()二、 qstring 與 char *
qstring 轉 char *,需要用到 qbytearray 類, 因為 char * 最後都有乙個'\0'作為結束符,而採用 qstring::tolatin1() 時會在字串後面加上'\0'。
// 重點:以上方法當 qstring 裡不含中文時,沒有問題,但是 qstring 內含有中文時,轉換為 char * 就是亂碼。
//(此處不研究中文編碼)
qstring str;
char* ch;
qbytearray ba = str.tolatin1(); // must
ch=ba.data();
//方法一:
char* str;
qstring string(str);
//方法二:不重新定義物件
inline qstring chartoqstring(char* charpara)
三、 qbytearry 與 char *// qbytearray 轉 char*
qbytearray byte;
char* str = byte.data();
//char* 轉 qbytearray
char* str;
qbytearray byte(str);
四、 qchar與 char//qchar - char
// char qchar::tolatin1() 或者 char qchar::toascii() const
char ch;
qchar qch;
ch = qch.tolatin1;
//char -> qchar
qchar(char ch)
qchar (uchar ch)
五、字元編碼
5.1、qstring編碼
qstring內部可能是使用unicode字符集來儲存文字。具體輸出的時候,就可以輸出該文字對應的unicode, ucs4, utf8, gb18030的編碼。
//**示例
printf("\n");
delete p;
qdebug() << "tolocal8bit" << tmp.tolocal8bit() << endl;//返回windows作業系統設定的字符集gb18030的編碼
qdebug() << "toucs4" << tmp.toucs4() << endl; //返回ucs4編碼組成的qvector,乙個漢字占用4位元組
QT資料型別轉換
1 char 與 const char 的轉換 char ch1 hello11 const char ch2 hello22 ch2 ch1 不報錯,但有警告 ch1 char ch2 2 char 與 qstring的轉換 char 轉換為 qstring 其實方法有很多中,我用的是 char ...
Qt 資料型別轉換
各種資料型別的相互轉換 char 與 const char 的轉換 char ch1 hello11 const char ch2 hello22 ch2 ch1 不報錯,但有警告 ch1 char ch2 char 轉換為 qstring 其實方法有很多中,我用的是 char a b qstrin...
QT 資料型別轉換
string std str abc qstring q str qstring fromstdstring std str qstring q str abc string q str.tostdstring string std str abc char str std str.c str st...