Qt輸入中文出現亂碼的解決方法

2021-10-04 00:15:41 字數 1411 閱讀 4830

在qt程式中有時候存在程式中輸入中文,執行之後亂碼的情況,如使用最簡單的qmessagebox彈框

qmessagebox:

:warning(0

,tr("選擇使用者"),

tr("請先從使用者列表選擇要傳送的使用者!"

), qmessagebox:

:ok)

;

會出現這樣的效果

這種情況出現的原因有

前者是因為在 linux上的qt開發環境下編寫的qt專案程式預設使用的是utf-8的編碼,轉移至其他平台因為同樣的開發環境存在不同編碼的關係,所以導致亂碼現象。後者則更多是因為配置環境的原因,這裡主要介紹因移植專案導致的編碼混亂出現的亂碼問題

//新增標頭檔案

#inclue

//宣告變數

qtextcodec * uncodec = qtextcodec:

:codecforname (

"gbk");

// 用於解碼

uncodec->

tounicode

("測試"

)

//替換掉原語句中的tr()字串函式,用於解碼

qmessagebox:

:warning(0

, uncodec->

tounicode

("選擇使用者"),

uncodec->

tounicode

("請先從使用者列表選擇要傳送的使用者!"

這種方法雖然相較於其他方法可能有點複雜,但卻是一種很有效的解決方法,只需要定義乙個全域性變數,就可以解碼輸入中文

這其他方式是我在網上查詢其他人總結的方法,我試了下,不知道是否是環境(qt5)的原因還是使用方法問題,未能如上述方法一樣成功達到目的。但還是將方法給出如下

//主函式中修改,同樣需要新增標頭檔案 -- qt5

intmain

(int argc,

char

*ar**)

我試了這種方法,但是沒能成功(┭┮﹏┭┮)

QT中文亂碼解決方法

由於我畢設的介面是用qt做的,之前沒怎麼接觸過qt,所以實現過程中遇到不少小問題,頭乙個就是這個。現如今寶寶將其記錄下來,供同樣有需要的同學或者自己以後方便查閱。1 所有檔案編碼格式須一致 2 新增 和標頭檔案 我新增在了main函式中 include 標頭檔案 qtextcodec setcode...

Qt 中文亂碼原因以及解決方法

自 本文主要分析了基於windows系統msvc2013編譯器的qt中文亂碼。概念 字型檔表 是乙個系統支援的文字,符號,數字的集合。編碼字符集 字符集 我們平時所說的字符集就是這個,計算機以二進位制的形式儲存字元,每個字元對應的二進位制編碼不同,而編碼字符集就是所有編碼與字元的對映集合。例如 在a...

C JS URL 中文傳參出現亂碼的解決方法

string mm server.urlencode 你 response.redirect index.aspx?mm mm 然後在接收頁解碼 string mm server.urldecode requext.querystring mm js 傳參 用encodeuri url引數 將url...