Qt輸出中文的解決辦法

來源:互聯網
上載者:User

一、概述
       因為工作到需要,需要使用QT進行開發。在學習QT到過程中,進行中文處理遇到了困難,輸出的文本全是亂碼。為此到處查資料,總算找到瞭解決到辦法。於是把找到的方法寫出來,一是與大家分享,二是作個備忘。
二、QT中的中文(國際化)
       在QT中,QString使用Unicode的方式來存放字串。那麼在將相應到本地化字串傳遞給QString時,一定要用相應到編碼器進行編碼,才能得到正確的本地化字串。
      方法:
      這裡介紹中文的轉換方法。
      在main()中,設定QApplication的到預設編碼方式。
      如:
       QApplication app(argc,argv);
       app.setDefaultCodec(QTextCodec::codecForName("GBK"));
       或則
       QTextCodec::setCodecForLocale(    QTextCodec::codecForName("GBK"));
       然後設定tr的編碼方式.
       QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));

       具體的使用:
       const char* pcszStr = "中文化";
       QString s = trUtf8(pcszStr);                              //1
       或則
       QString s = QString::fromLocal8Bit(pcszStr);   //2
       上面的1和2,有時1能正常顯示,有時2能正常顯示。至於為什麼會這樣,因為我也是初學QT,所以也正在研究答案。等找到答案以後在貼出來。

原文連結:http://blog.csdn.net/tony_hrwk/archive/2009/12/01/4906707.aspx

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.