• <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 閱讀(686) 評論(0)  編輯 收藏 引用 所屬分類: arithmetic
            国产精品九九久久免费视频 | 97久久香蕉国产线看观看| 精品多毛少妇人妻AV免费久久| 久久久久久精品久久久久| 久久精品人成免费| 久久www免费人成精品香蕉| 久久精品国产久精国产果冻传媒 | 国产精品狼人久久久久影院| 久久精品成人一区二区三区| 国产A三级久久精品| 久久亚洲国产精品一区二区| 一本久久a久久精品综合香蕉 | 性做久久久久久久久浪潮| 人妻无码中文久久久久专区| 久久精品成人| 久久综合九色综合97_久久久 | 亚洲国产视频久久| 久久国产精品一区二区| 人妻无码中文久久久久专区| 亚洲а∨天堂久久精品| 国产精品99久久久久久宅男| 久久精品欧美日韩精品| 亚洲国产欧美国产综合久久| 久久一区二区免费播放| 精品久久久久久无码免费| 久久精品视频网| 久久综合久久综合久久综合| 久久无码人妻一区二区三区午夜| 午夜精品久久久久久久无码| 99国内精品久久久久久久| 少妇熟女久久综合网色欲| 久久久久国色AV免费看图片| 一本大道久久a久久精品综合| 国产精品久久久久影院色| 亚洲国产精品无码久久SM| 亚洲中文字幕无码久久2020| 亚洲欧美成人综合久久久| 国产成人综合久久精品红| 久久精品国产国产精品四凭| 久久亚洲av无码精品浪潮| 少妇被又大又粗又爽毛片久久黑人|