msvc在編譯時,會根據源**檔案有無bom來定義原始碼字符集。如果有bom,則按bom解釋識別編碼;如果沒有,則使用本地字符集,對於簡體中文的windows作業系統就是gb2312。那麼,當msvc遇到乙個沒有bom的utf-8編碼的檔案時,它通常會把檔案看作gb2312的來處理。如果檔案全是英文沒有問題,但如果包含中文msvc編譯器就不能正常識別字元,編譯就會報錯。
解決辦法:
#pragma execution_character_set("utf-8")
Qt使用MSVC編譯器不能正確顯示中文的解決方案
用visualstudio做為ide,使用qt框架,顯示中文,會出現亂碼的情況。原因 msvc編譯器雖然可以正常編譯帶bom的utf 8編譯的原始檔,但是生成的可執行檔案的編碼是windows本地字符集,比如gb2312。在可執行檔案中,字串是以gb2312編碼的,而可執行程式執行到該語句時,對這個...
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...