Qt中文輸出解決辦法
Qt中文輸出解決辦法是本文要介紹的內(nèi)容,也似很多朋友需要解決的問(wèn)題,那么本文將會(huì)幫你解決問(wèn)題。不多說(shuō)了,請(qǐng)看內(nèi)容吧。
因?yàn)楣ぷ鞯叫枰枰褂?strong>Qt進(jìn)行開(kāi)發(fā)。在學(xué)習(xí)Qt到過(guò)程中,進(jìn)行中文處理遇到了困難,輸出的文本全是亂碼。為此到處查資料,總算找到了解決到辦法。于是把找到的方法寫(xiě)出來(lái),一是與大家分享,二是作個(gè)備忘。
Qt中的中文(國(guó)際化)
在Qt中,QString使用Unicode的方式來(lái)存放字符串。那么在將相應(yīng)到本地化字符串傳遞給QString時(shí),一定要用相應(yīng)到編碼器進(jìn)行編碼,才能得到正確的本地化字符串。
方法:
這里介紹中文的轉(zhuǎn)換方法。
在main()中,設(shè)置QApplication的到缺省編碼方式。
如:
- QApplication app(argc,argv);
- app.setDefaultCodec(QTextCodec::codecForName("GBK"));
或則
- QTextCodec::setCodecForLocale( QTextCodec::codecForName("GBK"));
然后設(shè)置tr的編碼方式.
- QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
具體的使用:
- const char* pcszStr = "中文化";
- QString s = trUtf8(pcszStr); //1
或則
- QString s = QString::fromLocal8Bit(pcszStr); //2
上面的1和2,有時(shí)1能正常顯示,有時(shí)2能正常顯示。至于為什么會(huì)這樣,因?yàn)槲乙彩浅鯇W(xué)Qt,所以也正在研究答案。等找到答案以后在貼出來(lái)。
小結(jié):Qt中文輸出解決辦法的內(nèi)容介紹完了,可能會(huì)幫你快速解決問(wèn)題哦,那么還是希望本文能夠幫你解決出現(xiàn)的問(wèn)題,如果還有什么問(wèn)題,謝謝留言!