Qt編碼問題總結

2021-08-19 13:50:13 字數 1650 閱讀 2798

qt5.7.1 ide, qt create 4.1

a(argc,argv);

qstring

strmessage1=

qstring::fromlocal8bit("我是utf8編碼的檔案:");

qstring

strmessage2=

qstringliteral("我是utf8編碼的檔案:");

qstring

strmessage3=

qstring::fromwchararray(l"我是utf8編碼的檔案:");

編譯提示警告:需要儲存uncode編碼

參考:公升級到qt5.x之後,原先解決的qt顯示中文亂碼的方法突然不適用了,找了很多方式來解決這個問題

第一種:

在公司**裡看到的方法,先將對應的cpp檔案用windows自帶的記事本開啟,另存為utf-8格式,然後在**中,遇到中文字元,使用qstringliteral("中文")進行修飾

這種方式每次新建乙個class就要切出去用記事本編輯一下實在麻煩,而且每個中文字串都要用qstringliteral來修飾,實在麻煩

後來有找到了個方法

第二種:

在標頭檔案申明中加上

#pragma execution_character_set("utf-8")

一切ok了
2016-10-8補充
ps:方法2只是用在qt5最初的某個版本上大概是兩三年前的某個版本,當初使用是可以解決中文顯示問題
最近用qt5.6 5.7兩個版本,這個方法已經不行了。各位還是繼續使用方法1來顯示中文字元
—————————————這是一條浪蕩的分割線—————————————————

2017.3.20更新

專門找了資料,把目前測試能用的解決中文字元亂碼的方法整理的一下

環境:vs2015   qt5.7

[cpp] 

view plain

copy

qstring str1=qstringliteral(

"中文字元"

);  

qstring str2=qstring::fromlocal8bit("中文字元"

);  

qstring str3=qstring::fromwchararray(l"中文字元"

);  

qstring str4=u8"中文字元"

;    

//好像這種方法只適合c++11以上版本

QT 編碼問題

執行字符集 可執行應用程式內使用何種字元編碼。編譯器會將原始碼字符集轉換為執行字符集 bom識別符號 識別原始檔編碼 qt5中qstring內部採用unicode字符集,utf 16編碼。建構函式qstring qstring const char str 預設使用fromutf8 將str所指的執...

Qt 編碼問題QTextCodec

一般在window開發環境裡,是gbk編碼,在linux開發環境裡,是utf 8編碼,關於編碼的定義,我就不這裡多說了,網上有一大堆資料可以檢視。qt 對預設的是 unicode 編碼,在window開發環境裡,比較通用的寫法是 在main.cpp檔案中加入 1.qtextcodec gbk qte...

Qt 編碼問題QTextCodec

收藏 編輯 一般在window開發環境裡,是gbk編碼,在linux開發環境裡,是utf 8編碼,關於編碼的定義,我就不這裡多說了,網上有一大堆資料可以檢視。qt對預設的是unicode編碼,在window開發環境裡,比較通用的寫法是 在main.cpp檔案中加入 1.qtextcodec gbk ...