在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...