• <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| 模特私拍国产精品久久| 久久偷看各类wc女厕嘘嘘| 色综合久久精品中文字幕首页| 欧美成人免费观看久久| 狠狠人妻久久久久久综合蜜桃| 漂亮人妻被中出中文字幕久久 | 国产高潮久久免费观看| 久久这里的只有是精品23| 精品国产热久久久福利| av午夜福利一片免费看久久| 一级做a爰片久久毛片毛片| 国产一区二区精品久久岳| 久久99精品久久久久子伦| 丁香色欲久久久久久综合网| 武侠古典久久婷婷狼人伊人| 久久综合九色综合久99| 久久久久久亚洲AV无码专区| 国产成人精品综合久久久久| 天天做夜夜做久久做狠狠| 国产精品久久久久乳精品爆 | 久久天天躁狠狠躁夜夜躁2014| 99久久免费只有精品国产| 久久人人爽人人爽人人AV| 伊人久久大香线蕉亚洲| 狠狠色婷婷久久一区二区 | 国产福利电影一区二区三区久久久久成人精品综合 | 久久免费看黄a级毛片| 精品久久久久久久国产潘金莲 | 久久综合丁香激情久久| 久久99精品久久久久婷婷| 久久亚洲AV成人无码国产| 91精品国产高清久久久久久io| 国产精品久久久久久福利漫画| 久久亚洲国产午夜精品理论片| 久久国产精品一区| 亚洲国产精品无码久久九九|