回覆列表
  • 1 # 劉泳舟律師

    一、概述

           因為工作到需要,需要使用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,所以也正在研究答案。等找到答案以後在貼出來。

  • 中秋節和大豐收的關聯?
  • 目標肌肉群發力是怎麼樣的感受?如何判斷是不是做對了呢?