Qt使用msvc編譯器出現(xiàn)中文亂碼的問題

原因

  • qt create文件使用的是UTF-8編碼,但MSVC生成的可執(zhí)行文件的編碼是windows本地的字符集如GB2312。兩者不兼容出現(xiàn)無法編譯通過或者出現(xiàn)亂碼
  • 定義奇數(shù)個中文字符時會報常量字符串中出現(xiàn)換行的錯誤(newline in constant),偶數(shù)個中文可以編譯通過并正常顯示

解決方法

  • 工具-選項-文本編輯器-行為-文件編碼中 設(shè)置UTF-8 BOM如果編碼是UTF-8則添加
  • 并在任何顯示定義的字符串用宏函數(shù)QStringLiteral(str)封裝起來,需注意的是不能再使用tr()函數(shù)用于編譯字符串


    image.png
  • 如果想使用QString的格式化功能可以再使用QString()繼續(xù)封裝QStringLiteral(str)

QStringLiteral 宏

  • 使用 QStringLiteral 宏可以在編譯期把代碼里的常量字符串 str 直接構(gòu)造為 QString 對象,于是運行時就不再需要額外的構(gòu)造開銷了
  • 常用來解決中文亂碼問題
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容