天天看點

QT5+MSVC2017+WIN10

QT5+MSVC2017+WIN10

QT5使用MSVC編譯UTF-8時,會編譯報錯或者運作時顯示亂碼!但是使用MinGW不會。這是因為QT5+MSVC時,編輯、編譯和運作時的編碼不一緻。有以下三種方法解決,推薦第三種。

方法一:

1、工具->選項->文本編輯器->行為->UTF-8 BOM設定成“如果編碼是UTF-8則添加”

QT5+MSVC2017+WIN10

2、在需要的頭檔案上加上:

#ifdef _MSC_VER
#pragma execution_character_set("UTF-8")
#endif
           

方法二:

1、設定是工具->選項->文本編輯器->行為->UTF-8 BOM 設定成“目前存在了則保留”

QT5+MSVC2017+WIN10

2、在 項目->Build&Run->相應的項目->Build->建構設定->編輯建構配置->Debug和Release->Build的步驟->qmake:…->詳情->額外的參數 添加 “QMAKE_CXXFLAGS += /utf-8”(雙引号需要一起複制)

QT5+MSVC2017+WIN10

注意:“Debug”和“release”都需要添加

方法三:

1、設定是工具->選項->文本編輯器->行為->UTF-8 BOM 設定成“目前存在了則保留”

QT5+MSVC2017+WIN10

2、在pro檔案中加入

win32-msvc* {
    QMAKE_CXXFLAGS += /utf-8
}
           

注意:

  • 1,在改變 文本編輯器 選項後,需要更改對應的檔案并儲存(右鍵點選檔案->用…打開->二進制編輯器 檢視檔案編碼)
  • 2,在改變pro檔案和編譯環境後,需要對工程“重新構造”

推薦使用第三種方法。