之前查了關於處理中文字元的一些資料,說法不一,有些方法又沒有效果。只好最終自己嘗試了一種適合當前程式的方法。
(1)首先在主函式中重置程式的預設字元編碼:
int main(int argc, char *argv)
(其中qtextcodec::codecforlocale()是用來返回系統的預設編碼的,另外也可以通過上面注釋掉的**qtextcodec::codecforname("utf8")來
指定某一種編碼。)
(2)然後,在控制項中用到中文字元時,則可以通過qstring的tolocal8bit()或fromlocal8bit(),來實現const char*與qstring之間的轉換。
const char* text = ui->sendtextedit->toplaintext().tolocal8bit();
而要將包含中文字元的字串顯示在文字框上面時,則可以這樣實現:
const char* msg = "資訊已傳送";
Qt中關於中文字元編碼問題
qstring filepath filepath qfiledialog getopenfilename null,qstring 開啟戶型圖 qstring qstring 戶型 件 bmp jpg png 編譯器報如下錯誤 e qt projects huxing src mainwindow...
QT 中文字元亂碼
qstring qbytearray 後位元組碼與window下的不對。下面的中文字元 中國人民億 data是我正常後的gbk位元組,value是直接使用 qstring totoutf8 qstring tolocal8bit 之類的與期望不符的位元組碼。首先qstring 轉換成qbytearr...
qt 5 9 0 中文字元顯示
qt中的中文顯示,經常會出現亂碼。qt4中的解決方法,大致如下所示 qtextcodec setcodecfortr qtextcodec codecforname utf8 qtextcodec setcodecforlocale qtextcodec codecforname utf8 qtex...