• <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>

            ivy-jie

            progress ...

            C++博客 首頁 新隨筆 聯系 聚合 管理
              9 Posts :: 41 Stories :: 6 Comments :: 0 Trackbacks

            漢字的GBK編碼也是把一個漢字用兩個字節來表示,其首字節對應0x81-0xFE(即129-224),尾字節對應除掉(0x7F)的0x40-oxFE(即64-126和128-224)

            我們一般判斷一個字是否是漢字都是根據其首字節來判斷,我們來看漢字的GBK編碼首字節的起始編碼0x81,其二進制即為0000 1000 0000 0000, 可見若一個字符的二進制邏輯與0x81之后為0時,該字符一定小于0x81,此時該字符必定不是漢字,反之,該字符應該是一個漢字的首字節。

            結合以上原理就不難理解一個中英文混合字符串的截取的常用代碼:

            function gb_substr($str, $start, $len)
            {
            $s = '';
            $j = 0;
            for ($i=0; $i<strlen($str); $i++) {
               if (ord($str[$i]) & 0x81 != 0) { //或者ord($str[$i]) > '0x80'
                $t = $str[$i].$str[$i+1];
                if (($i >= $start) && ($i+1 < $start+$len)) $s.= $t;
                $i++;
               } else {
                $t = $str[$i];
                if (($i >= $start) && ($i < $start+$len)) $s.= $t;
               }
               if ($i >= $start+$len) break;
            }
            return $s;
            }

            posted on 2009-05-21 23:31 ivy-jie 閱讀(693) 評論(0)  編輯 收藏 引用 所屬分類: arithmetic
            久久播电影网| 久久AV高潮AV无码AV| 久久强奷乱码老熟女| 久久受www免费人成_看片中文| 无码人妻久久一区二区三区免费| 九九99精品久久久久久| 青青青青久久精品国产h久久精品五福影院1421 | 国产韩国精品一区二区三区久久| 九九热久久免费视频| 国产精品久久久久久福利漫画| 久久精品国产一区二区三区| 久久精品国产亚洲av日韩| 亚洲国产精品一区二区三区久久| 久久九九精品99国产精品| 久久久久久久久波多野高潮| 777久久精品一区二区三区无码| 亚洲中文字幕无码久久精品1| 精品久久久久国产免费| 久久青青草原国产精品免费| 伊人久久大香线蕉亚洲五月天| 久久久WWW免费人成精品| 色综合久久久久网| 麻豆AV一区二区三区久久 | 色婷婷综合久久久久中文字幕| 99久久国语露脸精品国产| 久久亚洲AV成人无码电影| 超级97碰碰碰碰久久久久最新 | 久久亚洲国产成人精品性色| 久久久久亚洲AV综合波多野结衣| 91亚洲国产成人久久精品网址| 97久久精品无码一区二区天美| 国产精品美女久久久久久2018| 人妻少妇久久中文字幕一区二区 | 亚洲欧美日韩久久精品| 亚洲精品WWW久久久久久| 少妇被又大又粗又爽毛片久久黑人| 国产精品99久久久久久宅男| 久久精品国产亚洲一区二区三区| 色综合合久久天天给综看| 久久91精品国产91久| 午夜不卡久久精品无码免费|