(十二)QT中文亂碼問題

2021-10-10 10:18:20 字數 1679 閱讀 5690

原文出處:

本來想自己總結下,結果發現有人寫的更好,其中的方法一就是我經常使用的:

1.把平時要用的文字寫成乙個list,中文和英文分開,qstring strcnstring、qstring strenstring;(你有多少個語言就寫多少個list)

2.寫乙個程式,傳參為語言id和文字id

3.按照語言id查詢中文或者英文的list,使用文字id查詢對應的文字。這樣可以代替qt自帶的translator

(如果你的文字過多,建議把文字做成xml儲存)

qt中的中文顯示,經常會出現亂碼。從網上看了一些部落格,大都是qt4中的解決方法,

網上搜到的都是這種:

#include

< qtextcodec >

intmain

(int argc,

char

**ar**)

qt5中, 取消了qtextcodec::setcodecfortr()和qtextcodec::setcodecforcstring()這兩個函式,而且網上很多都是不推薦這種寫法。

**:

#include

"helloqt.h"

#include

#include

intmain

(int argc,

char

*ar**)

結果:

有三種轉換的方法:

1.加上#include

qtextcodec *codec = qtextcodec::codecforname(「gbk」);//修改這兩行

w.setwindowtitle(codec->tounicode(「學生事務管理系統」));

**改為:

#include

"helloqt.h"

#include

#include

#include

intmain

(int argc,

char

*ar**)

2.w.setwindowtitle(qstring::fromlocal8bit(「學生事務管理系統」));

**改為:

#include

"helloqt.h"

#include

#include

intmain

(int argc,

char

*ar**)

3.w.setwindowtitle(qstringliteral(「學生事務管理系統」));

**改為:

#include

"helloqt.h"

#include

#include

intmain

(int argc,

char

*ar**)

結果:

qt 中文亂碼 Qt中文亂碼問題

接觸了qt,由於習慣中vs,如果使用vs寫qt 剛接觸很快就發現有中文亂碼問題,我的解決方法如下 新建乙個標頭檔案,比如qtchcharset.h,標頭檔案中內容如下 pragma once ifdef q os win q os win 新增後支援gb2312,utf 8 bom,unicode ...

亂碼問題 Qt中文亂碼問題

接觸了qt,由於習慣中vs,如果使用vs寫qt 剛接觸很快就發現有中文亂碼問題,我的解決方法如下 新建乙個標頭檔案,比如qtchcharset.h,標頭檔案中內容如下 pragma once ifdef q os win q os win 新增後支援gb2312,utf 8 bom,unicode ...

QT 中文亂碼問題

1,將設定改為 如果是utf 8編碼,則新增 2,cpp檔案開始新增 pragma execution character set utf 8 根據 qt 的文件 中規定 qstring 的 const char 建構函式是呼叫 fromutf8 構造的。所以要求字串字面量是 utf 8 編碼的位元...