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


用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")


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM