前言
這個問題一直存在,以前是妥協,現在實在是忍不了,不解決,強迫症都要犯了,於是百度了一下,看到有一篇文章是這樣解決的,於是親測,確實有效果,記錄如下
正文
QT上用MSVC去編譯部分含有中文的字符串時會出現編譯錯誤 error: C2001: 常量中有換行符 ,但用MinGW就不會。需在后面加個正常的字符才能正常編譯,但出現 了。其編碼如下圖,明顯的看着編碼不對。
如果想都編譯成功,那就需要在設置里把“文件編碼”的 UTF-8 BOM 改成 “ 如果編碼是UTF-8則添加 ”。如下圖
但這樣做直接編譯出來的都是亂碼。編碼如下圖
需用 QStringLiteral()
把亂碼的字符串括起來,轉換后的類型是 QString。但用起來很麻煩,每個都要加上去。或者可以在對於的頭文件或 .cpp文件 上加上 #pragma execution_character_set(“utf-8”)
。
后面我的得做法是:
- 設置是工具->選項->文本編輯器->行為->UTF-8 BOM設置成“如果編碼是UTF-8則添加”
- 在亂碼文件上加上
#pragma execution_character_set(“utf-8”)
。