qtextcodec::setcodecfortr(...)qtextcodec::setcodecforcstrings(...)
qtextcodec::setcodecforlocale(...)
儘管之前零零散散寫過一點這方面的內容,比如
但是,敢死隊員還是一批一批的 … 讓人少多有些無奈
在國內,之所以用很多人用這3行**,是因為他們在源**的const char*這種窄字串中使用了中文。
然後,發現。不對啊,咋全是亂碼呢?於是上網搜尋,發現其他人用的這3行**
於是,加上試試。發現:在自己的當前環境下(固定系統、固定地區語言設定、固定編譯環境)還真的沒有亂碼了。
於是乎?完全不考慮那3行**的作用了,反正自己能用就行了,管它什麼***呢!!
在qt5中,這個問題終於不復存在了,因為
這兩個函式
qtextcodec::setcodecfortr(...)qtextcodec::setcodecforcstrings(...)
被直接去掉了。
這樣一來,受影響的直接是如下**了:
qstring s1 = "我是中文";qstring s2("我是中文");
qstring s3 = qobject::tr("我是中文")
現在qt5中儘管去掉了setcodec***這兩個函式,但是預設編碼還是latin1。如果你要想使用
"我是中文"
這樣的字串,必須自己使用qtextcodec或這qstring::from*** 這種東西進行轉換
qt5發布之時,預設將會是utf8編碼,完全可以將你從qt編碼問題解放出來。
下面的**
qstring s1 = "我是中文";qstring s2("我是中文");
qstring s3 = qobject::tr("我是中文")
將不會工作。
如果你在windows下,且使用的是mingw,那麼只要你將原始碼檔案儲存成utf8,前面的**將直接可以工作(無須其他設定)
如果你在其他平台了,那麼應該都預設是utf8檔案。同樣無須進行設定。
如果你的編譯器支援c++11,那麼,你可以直接使用
qstring s = u8"我是中文";
主流編譯器還都不怎麼支援c++11
qt 中文亂碼 Qt中文亂碼問題
接觸了qt,由於習慣中vs,如果使用vs寫qt 剛接觸很快就發現有中文亂碼問題,我的解決方法如下 新建乙個標頭檔案,比如qtchcharset.h,標頭檔案中內容如下 pragma once ifdef q os win q os win 新增後支援gb2312,utf 8 bom,unicode ...
Qt中文亂碼
laguage c title 出現頻率最高的辦法 include intmain int argc,char argv 很多地方都會告訴你,這樣可以實現qt支援中文,包括我看的教程書上也是,他甚至告訴我要支援中文必須加入這段 但我想告訴你,這個辦法是有問題的,而且這個問題還不小!我在兩台同樣是xp...
QT中文亂碼
兩邊都是win7系統,不知道為什麼在我的機器上就可以正常顯示,而把exe檔案加上必要的dll一起移到另一台win7系統電腦上時,button,label什麼的都顯示亂碼了,而且qtextedit裡面的卻能夠正常顯示。請問下這是因為什麼問題呢?通過設定以下 也沒能解決問題 c c code 1234 ...