原:
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
Qt5發生的變化 Qt5程式設計入門筆記
2 qt5移除了qt opengl模組,將opengl相關的類移動到了qt gui模組中,意味著opengl成為了每個應用程式的必選項。3 qt5吧全部的qt介面遷移到qt平台抽象層 qt platform abstraciton qpa 智商,使得qt能更容易地移植到另外的系統和裝置上。4 qt5...
Qt5 嵌入式裝置QT5動態庫編譯,QT5移植
perl 5.8 or later python 2.7 or later c compiler supporting the c 98 standard sdk提供 編譯套裝 sudo apt get install build essential sudo apt get install git...
微軟office的新變化
北京時間3月29日訊息,據國外 報道,微軟將於今年5月發布office 2010。但由於網際網路應用的逐漸興起,office 2010將會面臨著來自於谷歌的挑戰。微軟已經消滅了office辦公軟體的絕大部分競爭對手。但是來自於谷歌免費或廉價的基於網際網路的辦公軟體,正在對微軟盈利豐厚的office部...