QT學習 中文顯示亂碼

2021-08-20 05:52:42 字數 866 閱讀 8611

一、中文在qt中顯示亂碼的原因:是因為編碼和解碼的不對應造成的,比如我們在windows xp、vs2010下原始碼檔案(cpp)的字符集是gbk,而qt比如qstring的編碼方式是utf。

同樣的"我是漢字"這幾個字,gbk編碼等價於:const char * str = "\xce\xd2\xca\xc7\xba\xba\xd7\xd6";

而"\xce\xd2\xca\xc7\xba\xba\xd7\xd6"使用utf-8解碼並不能顯示:「我是漢字」。

所以就需要進行字符集的轉換。

二、轉換方式:

void gbktounicode::onpushbuttonclicked(bool bclick)

{ /* 1、

*顯示亂碼:對於中文作業系統本地是gbk編碼,qstring是utf16編碼,所以亂碼,需要轉換

*/ //qstring str = "你好中國";

>settext(str);

/* 1、

*將gbk編碼轉換為utf16編碼,解決亂碼

*/ qstring str = qstring::fromlocal8bit("你好中國");

ui.lineedit->settext(str);

/* 2、

* 將utf16編碼轉換為gbk編碼,進而轉換為char*字串

*/ qstring str = ui.lineedit->text();

qbytearray byte = str.tolocal8bit();

const char* gbk = byte.data();

/* 3、

* */ qstring str = ui.lineedi

Qt學習 Qt介面顯示中文亂碼

設定為系統字型,用三個set qtextcodec setcodecfortr qtextcodec setcodecforcstrings qtextcodec setcodecforlocale qt快速入門 一書中的方法,只需要乙個set qtextcodec setcodecfortr 但是...

qt中文顯示亂碼(1

昨天電腦重新安裝了系統,導致所有的軟體都要重新安裝一遍。沒問題!裝嘛是吧。當把qt4.7.4安裝好以後,編譯我之前寫的軟體,發現不能顯示中文了。奇怪啊,在之前的系統上面我已經做了操作了,如下 按道理說應該沒什麼問題了,可是執行出來的效果卻是 然後我又,在網上查詢解決方法,所有的方式方法,都集中在字元...

Qt5顯示中文亂碼

公升級到qt5.x之後,原先解決的qt顯示中文亂碼的方法突然不適用了,找了很多方式來解決這個問題 第一種 在公司 裡看到的方法,先將對應的cpp檔案用windows自帶的記事本開啟,另存為utf 8格式,然後在 中,遇到中文字元,使用qstringliteral 中文 進行修飾 這種方式每次新建乙個...