Qt漢字亂碼問題

1.漢字亂碼問題:
例:
ui->EditDebugChannel->setText(QString("%1通道").arg(debug_channel));顯示到窗口就會有亂碼
產生原因:
Qt內部是使用Unicode編碼的,即QString保存的是Unicode編碼的字符串。而源碼中的漢字字符串在生成可執行文件的過程中被轉換成了本地編碼(windows默認ANSI)。因此,運行.exe文件時,如果按照Unicode編碼讀取漢字,則會產生亂碼。

解決方法:
1). QSring::fromLocal8bit 把本地編碼轉換爲Unicode編碼
setText(QString::fromLocal8Bit(“通道”));
2). QStringLiteral宏
直接生成Unicode字符串保存在可執行文件中的只讀區域,這樣運行時不會發生任何轉換。可以顯著提高程序運行效率。
需C++11支持。
setText(QStringLiteral(“通道”));

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章