Qt中文亂碼的幾種情況

2021-09-24 20:34:59 字數 590 閱讀 1474

測試環境:qt5.9.6 ,使用vs2017的編譯器。

一、亂碼現象:

1.源**中的中文顯示亂碼

2.編譯時出現「常量中有換行符"的警告。

3.執行時軟體介面中文顯示亂碼

二、解釋:

1.qtcreator編輯器預設採用utf-8編碼讀取檔案。vs預設採用本地編碼(我們使用的windows一般為gb2312)

用qtcreator讀取vs建立的檔案則會出現衝突。

2.msvc編譯檔案時根據原始碼檔案有無bom來定義原始碼字符集,如果有bom就按bom解釋編碼,如果沒有就使用本地字符集。

3.msvc的執行字符集預設是本地字符集。

使用utf-8  + bom編碼 (utf-8跨平台)

1.把源**的檔案轉化成utf-8 (帶bom)

2.在使用中文的檔案中加上:

#if _msc_ver >= 1600

#pragma execution_character_set("utf-8")

#endif

告訴msvc編譯器,執行字符集是utf-8。

注:使用utf-8(bom)的原始碼檔案,用mingw編譯時中文也是正常的。

Qt中文亂碼的幾種情況

測試環境 qt5.9.6 使用vs2017的編譯器。一 亂碼現象 1.源 中的中文顯示亂碼 2.編譯時出現 常量中有換行符 的警告。3.執行時軟體介面中文顯示亂碼 二 解釋 1.qtcreator編輯器預設採用utf 8編碼讀取檔案。vs預設採用本地編碼 我們使用的windows一般為gb2312 ...

Nokogiri 中文亂碼的幾種情況

color red 更新 color 2011 11 15 有些不是ie上的了 如果不確定目標是什麼編碼,ruby1.9開始可以用string類內建的encoding來得到編碼。puts iconv.iconv utf 8 doc.to s.encoding.to s,doc 使用 ignore忽略...

qt 中文亂碼 Qt中文亂碼問題

接觸了qt,由於習慣中vs,如果使用vs寫qt 剛接觸很快就發現有中文亂碼問題,我的解決方法如下 新建乙個標頭檔案,比如qtchcharset.h,標頭檔案中內容如下 pragma once ifdef q os win q os win 新增後支援gb2312,utf 8 bom,unicode ...