問題描述
因為專案需要,重新用上了qt 4.8.4,在之前的一段時間內,我一直是在使用qt 5。實際上,本來專案是要使用qt 5的,但是遇到幾個莫名其妙的問題,解決辦法繁瑣,不利於後期專案的部署,所以採用qt 4.8.4。
好的,回歸正題,使用的過程中碰到了老問題:linux環境下中文顯示問題。這個問題其實碰到很多次了,每次還得去網上找解決辦法,還是自己記錄一下,這樣以後更方便。
我的系統環境是ubuntu,在windows下的解決辦法又是不一樣的;
解決辦法
這種問題幾乎都是編碼問題導致的,這裡就圍繞編碼這方面來講。當然,還有可能是你自己的qt沒有編譯、安裝好,甚至是linux系統出現一些問題,在這裡先不講這些。
編碼的話,一般常用的是「gb2312」,「utf-8」,我推薦使用「utf-8」。
第一次我的解決辦法是這樣的:
qtextcodec::setcodecforcstrings(qtextcodec::codecforlocale());
qtextcodec::setcodecfortr(qtextcodec::codecforname("utf-8"));
這個辦法在大部分情況下,使用都沒有任何問題,但是偏偏讓我遇到特例了。是這樣的:在乙個自啟動程式中呼叫qt程式的時候,中文不顯示。在這之前,我已經試過,直接執行那個程式並呼叫qt程式,這樣是正確的。這就有點鬱悶了,但我相信還是編碼沒弄好。
最終找到了正確的解決辦法:
qtextcodec::setcodecfortr(qtextcodec::codecforname("utf-8"));
qtextcodec::setcodecforlocale(qtextcodec::codecforname("utf-8"));
qtextcodec::setcodecforcstrings(qtextcodec::codecforname("utf-8"));
QT5 中文顯示亂碼問題
qt中的中文顯示,經常會出現亂碼。從網上看了一些部落格,大都是qt4中的解決方法,網上搜到的都是這種 include qtextcodec int main int argc,char argv qt5中,取消了qtextcodec setcodecfortr 和qtextcodec setcode...
QT4中文顯示
相信搞過qt4.5檔案系統的朋友都遇到過中文字型的問題,要不是顯示亂碼,就是顯示空白。以前遇到過這樣的問題,來天嵌的官網查了解決辦法,找不到有效的辦法,論壇有個qt程式,說是支援中文的,是管理員發的,不過有缺陷,而且也無法顯示中文,後來經過努力,解決了問題。不過今天又搞這個的時候,由於之前的工程不知...
qt中顯示中文
1.在qt介面中顯示中文 qstring ss qstring fromlocal8bit 你好世界 m textedit setplaintext ss 2.在介面中得到中文字幕 qstring text lineedit text qbytearray bytes text.tolocal8bi...