qt中的中文顯示,經常會出現亂碼。這次自己學習qt,遇到的第乙個問題就是中文亂碼。看了一些部落格,五花八門,不過好在還是得到了解決!
網上搜尋一下,找到的都是這種:
#include < qtextcodec >
int main(int argc, char **argv)
qt5中,取消了qtextcodec::setcodecfortr()和qtextcodec::setcodecforcstring()這兩個函式,而且網上很多都是不推薦這種寫法。
有幾種轉換的方法:
一:qtextcodec * bianma = qtextcodec::codecforname ( "gbk" );
qmessagebox::information(this, "提示", bianma->tounicode("中文顯示!"));
二:也可以通過qstring定義的靜態函式,先轉換成unicode型別:
qstring::fromlocal8bit("提示")
三:在qt5中,提供了乙個專門的處理巨集,來支援中文常量,那就是qstringliteral,但它只能處理常量。
qmessagebox::information(this, qstring::fromlocal8bit("提示"), qstringliteral("中文顯示"));
const char* info = "中文顯示";
//不支援
qstring strinfo = qstringliteral(info);
//支援
qstring strinfo = qstring::fromlocal8bit(info);
對於中文常量,使用qstringliteral即可解決,對於字串變數,使用qstring自帶函式也可以輕鬆解決。
QT5 中文顯示亂碼問題
qt中的中文顯示,經常會出現亂碼。從網上看了一些部落格,大都是qt4中的解決方法,網上搜到的都是這種 include qtextcodec int main int argc,char argv qt5中,取消了qtextcodec setcodecfortr 和qtextcodec setcode...
Qt5顯示中文亂碼
公升級到qt5.x之後,原先解決的qt顯示中文亂碼的方法突然不適用了,找了很多方式來解決這個問題 第一種 在公司 裡看到的方法,先將對應的cpp檔案用windows自帶的記事本開啟,另存為utf 8格式,然後在 中,遇到中文字元,使用qstringliteral 中文 進行修飾 這種方式每次新建乙個...
Qt5中文亂碼問題
標頭檔案加上 include 在類裡面定義變數 qtextcodec codec 在建構函式中初始化變數 codec qtextcodec codecforname gb18030 在每次使用中文的時候直接呼叫 codec tounicode 開啟檔案 對於中文路徑 qstring filename...