Qt中文亂碼 使用Unicode萬國碼解決

2021-09-24 19:40:53 字數 1180 閱讀 9303

需求

qt介面開發過程中可能使用到多個語言的字元。需要解決亂碼問題。

api介紹

qt 提供類:qtextcodec class,用來支援各種編碼協議,支援:

等等一些編碼協議。

qt的qtextcodec class類提供了很多控制編碼的方法和靜態函式。 原因

使用msvc編譯器會使用本地編碼,造成和qt預設設定的編碼衝突,編譯過程**現中文亂碼。最簡單的方式是:使用mingw編譯器。

具體方法

#include

intmain

(int argc,

char

*ar**)

補充

參考文獻:

仍然使用,但是是將字串轉換。

qtextcodec *codec = qtextcodec::

codecforname

(「gbk」)

;//修改這兩行

w.setwindowtitle

(codec-

>

tounicode

(「學生事務管理系統」)

);

利用qstring::fromlocal8bit()靜態函式;

w.

setwindowtitle

(qstring::

fromlocal8bit

("學生事務管理系統"))

;

利用qstringliteral()函式處理字串。

w.

setwindowtitle

(qstringliteral

("學生事務管理系統"))

;

4.指定msvc編譯器執行字符集,強制msvc編譯器採用utf-8編碼生成可執行檔案。

#if _msc_ver >= 1600	

// msvc2015 > 1899, msvc_ver = 14.0

#pragma execution_character_set("utf-8")

#endif

使用 #pragma execution_character_set(「utf-8」) 強制轉換後,就不要再使用前面兩種方法了,否則又亂碼了,做無用功。

qt 中文亂碼 Qt中文亂碼問題

接觸了qt,由於習慣中vs,如果使用vs寫qt 剛接觸很快就發現有中文亂碼問題,我的解決方法如下 新建乙個標頭檔案,比如qtchcharset.h,標頭檔案中內容如下 pragma once ifdef q os win q os win 新增後支援gb2312,utf 8 bom,unicode ...

Qt中文亂碼

laguage c title 出現頻率最高的辦法 include intmain int argc,char argv 很多地方都會告訴你,這樣可以實現qt支援中文,包括我看的教程書上也是,他甚至告訴我要支援中文必須加入這段 但我想告訴你,這個辦法是有問題的,而且這個問題還不小!我在兩台同樣是xp...

QT中文亂碼

兩邊都是win7系統,不知道為什麼在我的機器上就可以正常顯示,而把exe檔案加上必要的dll一起移到另一台win7系統電腦上時,button,label什麼的都顯示亂碼了,而且qtextedit裡面的卻能夠正常顯示。請問下這是因為什麼問題呢?通過設定以下 也沒能解決問題 c c code 1234 ...