Qt使用MSVC編譯器不能正確顯示中文的解決方案

2022-07-29 08:15:10 字數 427 閱讀 2771

用visualstudio做為ide,使用qt框架,顯示中文,會出現亂碼的情況。

原因:msvc編譯器雖然可以正常編譯帶bom的utf-8編譯的原始檔,但是生成的可執行檔案的編碼是windows本地字符集,比如gb2312。在可執行檔案中,字串是以gb2312編碼的,而可執行程式執行到該語句時,對這個字串卻是以utf-8解碼的,這樣就會出現亂碼。

解決方法有兩種:

1.使用qstringliteral(str)巨集封裝字串,但此種方法不能使用tr()函式用於翻譯字串。

qstring str = qstringliteral("使用中文");

2.強制msvc編譯器採用utf-8編碼生成可執行檔案,需要在每個使用到中文字串的標頭檔案和原始檔的前部加入如下語句:

#pragma execution_character_set("utf-8")

Qt編譯器 MinGW與MSVC的區別

qt 中有兩種方式編譯 一種是mingw 另一種msvc,mingw與msvc是兩種不同的編譯器。1 msvc microsoft visual c compiler 是指微軟的vc編譯器。2 mingw是minimalistgnufor windows的縮寫。它是乙個可自由使用和自由發布的wind...

Qt編譯器 MinGW與MSVC的區別

qt 中有兩種方式編譯 一種是mingw 另一種msvc,mingw與msvc是兩種不同的編譯器。1 msvc microsoft visual c compiler 是指微軟的vc編譯器。2 mingw是minimalistgnufor windows的縮寫。它是乙個可自由使用和自由發布的wind...

Qt編譯器 MinGW與MSVC的區別

1 mingw 是什麼?2 mingw是什麼東西?它和qt是什麼關係?怎麼用mingw 3 qt creator中的 mingw是什麼 4 qt,qt creator,mingw,vs關係 qt 中有兩種方式編譯 一種是mingw 另一種msvc,mingw與msvc是兩種不同的編譯器。1 msvc...