• <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編碼也是把一個漢字用兩個字節(jié)來表示,其首字節(jié)對應0x81-0xFE(即129-224),尾字節(jié)對應除掉(0x7F)的0x40-oxFE(即64-126和128-224)

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

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

            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 閱讀(678) 評論(0)  編輯 收藏 引用 所屬分類: arithmetic
            亚洲а∨天堂久久精品| 狠狠综合久久综合中文88| 久久夜色撩人精品国产小说| 国产精品一区二区久久精品| 伊人久久大香线蕉综合Av| 2021国内久久精品| 怡红院日本一道日本久久 | 久久九九青青国产精品| 2019久久久高清456| 一级做a爰片久久毛片免费陪| yellow中文字幕久久网| 久久婷婷国产麻豆91天堂| 久久国产精品国产自线拍免费| 亚洲综合伊人久久综合| 国产毛片欧美毛片久久久| 波多野结衣AV无码久久一区| 久久人人爽人人爽人人片av麻烦| 久久久久久久免费视频| 精品久久亚洲中文无码| 亚洲va久久久噜噜噜久久| 无码精品久久久久久人妻中字| 久久久久亚洲av无码专区导航| 久久99精品久久久久久久不卡| 97久久超碰国产精品旧版| 久久久久一区二区三区| 很黄很污的网站久久mimi色 | 欧美日韩中文字幕久久久不卡 | 2021国产精品午夜久久| 国产A三级久久精品| 国产午夜免费高清久久影院 | 美女写真久久影院| 久久午夜福利电影| 国产偷久久久精品专区| 国产精品女同久久久久电影院| 久久综合久久综合九色| 久久综合九色综合久99| 久久久久99这里有精品10| 国内精品久久久久久99蜜桃| 精品久久久久久国产牛牛app| 国产99久久久国产精品小说| 国产精品岛国久久久久|