QT MSVC中文編譯出錯error: C2001: 常量中有換行符 --- 解決方案


前言

這個問題一直存在,以前是妥協,現在實在是忍不了,不解決,強迫症都要犯了,於是百度了一下,看到有一篇文章是這樣解決的,於是親測,確實有效果,記錄如下


正文

QT上用MSVC去編譯部分含有中文的字符串時會出現編譯錯誤 error: C2001: 常量中有換行符 ,但用MinGW就不會。需在后面加個正常的字符才能正常編譯,但出現 了。其編碼如下圖,明顯的看着編碼不對。
在這里插入圖片描述
如果想都編譯成功,那就需要在設置里把“文件編碼”的 UTF-8 BOM 改成 “ 如果編碼是UTF-8則添加 ”。如下圖
在這里插入圖片描述
但這樣做直接編譯出來的都是亂碼。編碼如下圖
在這里插入圖片描述
需用 QStringLiteral()把亂碼的字符串括起來,轉換后的類型是 QString。但用起來很麻煩,每個都要加上去。或者可以在對於的頭文件或 .cpp文件 上加上 #pragma execution_character_set(“utf-8”)

后面我的得做法是:
  1. 設置是工具->選項->文本編輯器->行為->UTF-8 BOM設置成“如果編碼是UTF-8則添加”
  2. 在亂碼文件上加上 #pragma execution_character_set(“utf-8”)
    在這里插入圖片描述


免責聲明!

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



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