• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            程序讓生活更美好

            半畝方塘 天光云影

              C++博客 ::  :: 新隨筆 :: 聯系 ::  :: 管理 ::
              55 隨筆 :: 4 文章 :: 202 評論 :: 0 Trackbacks

               在使用QT編程的時候,我們處理字符串一般都使用的QT自帶的QString類型,這個類型類似于STL中的string類型,還是非常好用的。不過QT的編碼方式使用Unicode,我猜測真是由于這個原因,再使用QString的length()方法返回字符串長度的時候就會出現偏差,對于一般的西文字母是沒有問題的,但是對于中文字符卻有問題了,它把一個中文字符當作一個字節來處理了,所以像字符串“你好QT”的長度返回的是4,而不是6。

            問題出現了,那么我們需要怎么解決呢,思路很簡單,就是轉換編碼,然后再進行長度的求取,QT的文檔里面有好多函數,試驗了半天,終于找到一個合適的函數,順利的完成了我的要求。該函數就是fromLocal8Bit ( const char * local8Bit, int len = -1 )

            QCString QString::local8Bit () const
            以本地指定的格式返回字符串。在X11系統中,使用QTextCodec::codecForLocale()。 在Windows系統中,它是一種系統指定的編碼方式。在Mac OS X中,使用uft8作為編碼方式。

             有了上面的鋪墊,下面就問題就好辦了,要想求取帶中文的字符串的長度,只需要稍微多走一步而已。假設有字符串str="QT你好",那么我們主要進行str.local8Bit().length(),這樣結果就是6,符合我們的要求了,事情就是這樣,此文完!

            posted on 2007-10-16 20:40 北風之神007 閱讀(8780) 評論(0)  編輯 收藏 引用 所屬分類: QT
            伊人久久大香线焦综合四虎| 久久人人爽人人爽人人片AV东京热| 777久久精品一区二区三区无码 | 久久精品国产亚洲AV久 | 久久九九兔免费精品6| 久久99久国产麻精品66| 久久国产色AV免费观看| 精品午夜久久福利大片| 久久精品无码一区二区app| 亚洲婷婷国产精品电影人久久| 日韩人妻无码一区二区三区久久99| 模特私拍国产精品久久| 久久精品国产亚洲AV香蕉| 99久久国产免费福利| 午夜精品久久久久| 久久久久夜夜夜精品国产| 亚洲国产精品成人AV无码久久综合影院 | 免费精品久久久久久中文字幕| 中文字幕精品久久久久人妻| 久久精品国产亚洲AV无码偷窥| 精品99久久aaa一级毛片| 色综合久久久久综合体桃花网 | 精品久久久一二三区| 国产Av激情久久无码天堂| 久久无码国产| 久久久久99精品成人片试看| 精品久久久久久无码国产| 久久久久亚洲AV无码网站| 亚洲精品久久久www| 久久久久久久尹人综合网亚洲| 天堂久久天堂AV色综合| 香蕉99久久国产综合精品宅男自| 久久99精品久久久久婷婷| 久久人做人爽一区二区三区| 久久精品无码av| 国产精品日韩深夜福利久久| 99麻豆久久久国产精品免费| 久久99这里只有精品国产| 天天影视色香欲综合久久| 久久久久国产精品嫩草影院| 色综合久久久久网|