1. 程式人生 > >關於QT呼叫MFC動態庫時傳遞中文字元亂碼問題

關於QT呼叫MFC動態庫時傳遞中文字元亂碼問題

凡是亂碼,一定是解碼方式不對,在此做個小小的總結。

MFC CString和QT QString都採用unicode編碼

MFC中的char *採用GBK編碼,QT中的char *採用UTF-8編碼,這裡關於字元的編碼,有個規律就是和原始碼檔案儲存的編一致。

 

 // QT中QString的Unicode編碼轉GBK編碼
QTextCodec * pCodec = QTextCodec :: codecForName(“GBK”);

QByteArray data = pCodec-> fromUnicode(dataFilePath);

char * p = data.data());

<type="text/javascript"><src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">