Qt Windows/Linux支援中文編碼

來源:互聯網
上載者:User

Qt中經常需要用到中文,不論是字串還是路徑名。還好Qt提供了QTextCodec類,該類具有強大的編碼格式轉換功能,提供了世界上大多數常用的字元編碼格式。

Qt中使用QString的字串採用的是Unicode編碼,我們使用的Windows系統是GBK編碼(一種中文編碼),linux下通常使用的是UTF-8編碼。

1.Windows下是使用中文

在main()函數內添加如下:

1 #include <QTextCodec>2 3 QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK")); //路徑名支援中文4 QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK")); //QString支援中文5 QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK")); //string支援中文

2.Linux下

將上面的"GBK"換作"UTF-8"。

3.其他情況

有時,即使進行了上面的添加,在其他的檔案內使用中文時還是會出現亂碼的情況(你還不說,我真遇到過,之糾結。。。)。這時,有另外的解決辦法

比如QString類型的tr("中文"),這裡本來該顯示"中文"的結果顯示了亂碼,那麼將tr("中文")替換為

QTextCodec::codecForName("GBK")->toUnicode("中文")

這樣就會正常顯示中文了。實際上這也是一種防止中文出現亂碼的解決方案,只是這樣的話每個有QString串中文的地方都要做如此修改,這也沒辦法,誰讓加了那三句話還是亂碼呢。

4.題外話

當然,Qt提供了各國語言的翻譯,。不過我們寫的程式只是國內用,所以用不著那麼高端的功能,在程式中都寫成中文就是。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.