Qt中文字串顯示報錯 亂碼解決方法

2021-10-25 07:08:11 字數 803 閱讀 9871

在qt中使用字串qstring時經常會碰到莫名其妙的報錯,比如:

this

->

setwindowtitle

("簡易串列埠助手");

//error: c2001: 常量中有換行符

對於這種情況,通常只要在字串的末尾加乙個空格,使中文和引號隔開即可:

this

->

setwindowtitle

("簡易串列埠助手 "

);

但有時,即便是這樣可以編譯通過但還是會顯示亂碼:

此時只需要在工程的pro檔案中加入下列**即可解決中文字串亂碼問題,但這只針對msvc編譯器可行,其他編譯器沒有測試過:

##pro檔案中,解決中文亂碼

msvc

this

->

setwindowtitle

(qstring

("簡易串列埠助手 "))

;//或者

this

->

setwindowtitle((

"簡易串列埠助手 "))

;

結果如下,成功解決了中文顯示的亂碼:

QT解決顯示中文亂碼問題

以settext為例,新增qstringliteral 即可解決亂碼問題 settext qstringliteral 你好 你要明白qobject tr是幹嘛的。它是用於程式國際化使用的,也就可以介面文字翻譯成不同的語zd言。你如果使用qobject tr,你應該全部用英文表示,然後後面借助lin...

解決QT中文字串在osg中顯示亂碼的問題

網上有很多例子,但是幾乎都沒有正常顯示中文,經過痛苦的試驗和折磨,終於解決了qt字串在osg中的正常顯示問題,下面貼出主要 分享給大家。qtextcodec setcodecfortr qtextcodec codecforname gbk qtextcodec code qtextcodec co...

Qt技巧 中文顯示亂碼問題解決

本人使用的qt版本為5.8.0,以下說明適用於qt 5.4及以上版本。1 使用國際化,tr 中文 也是無法顯示,就算新增下面的 也還是無法顯示。不管name是gbk gb2132 utf 8,均已證實無效。qtextcodec setcodecforlocale qtextcodec codecfo...