QT5 中文顯示亂碼問題的解決

2021-09-08 07:02:00 字數 924 閱讀 7179

1. 之前qt4版本中文亂碼解決辦法是在main.cpp檔案加入:

#include int main(int argc, char **ar**)

針對linux系統預設編碼是utf8;而windows系統預設的編碼是gb2312/gbk等。需要對應的改變設定。2. qt5版本之後,類qtextcodec已經取消了qtextcodec::setcodecfortr()和qtextcodec::setcodecforcstring()這兩個函式

上述方法也不能解決中文亂碼的問題了。需要用新方法。

第一種:

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

第二種:

在標頭檔案申明中加上

#pragma execution_character_set("utf-8")

具體我遇到的情況如下:

然後將所有的qstring::fromlocal8bit修飾的中文改用qstringliteral修飾

//    w.setwindowtitle(qstring::fromlocal8bit("我的**"));

w.setwindowtitle(qstringliteral("我的**"));

即可解決問題

QT5 中文顯示亂碼問題

qt中的中文顯示,經常會出現亂碼。從網上看了一些部落格,大都是qt4中的解決方法,網上搜到的都是這種 include qtextcodec int main int argc,char argv qt5中,取消了qtextcodec setcodecfortr 和qtextcodec setcode...

Qt5中文亂碼問題

標頭檔案加上 include 在類裡面定義變數 qtextcodec codec 在建構函式中初始化變數 codec qtextcodec codecforname gb18030 在每次使用中文的時候直接呼叫 codec tounicode 開啟檔案 對於中文路徑 qstring filename...

QT5 中文亂碼問題

pragma execution character set utf 8 在類中宣告此預編譯!指示char的執行字符集是utf 8編碼。為什麼會出現亂碼 首先,我們需要有的概念是亂碼的問題是由編碼和解碼方式引起的。涉及到編碼方式的地方有3個 原始碼字符集 執行字符集 執行環境字符集 原始碼字符集 t...