多位元組多編碼字串擷取

2021-07-03 18:49:46 字數 881 閱讀 7373

/**

* 字串擷取,支援中文和其他編碼

* @static

* @access public

* @param string $str 需要轉換的字串

* @param string $start 開始位置

* @param string $length 擷取長度

* @param string $charset 編碼格式

* @param string $suffix 截斷顯示字元

* @return string

*/function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true)

}else|[\xf0-\xff][\x80-\xbf]/";

$re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";

$re['gbk'] = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";

$re['big5'] = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";

preg_match_all($re[$charset], $str, $match);

$slice = join("",array_slice($match[0], $start, $length));

}return $suffix ? $slice.'...' : $slice;

}$str='學業忙?工作忙?你是不是總覺得沒時間讀書?';

echo msubstr($str,0,4,'utf-8',false);

多位元組編碼字串與UTF8字元編碼的轉換

1 多位元組編碼字串轉utf8字元編碼 std string csqlitedbmanager to utf8 std string strdata 轉換乙個寬字串到utf8字串 int iutf8len widechartomultibyte cp utf8,0,lpszw,ilen,null,0...

擷取處理UTF 8編碼字串

擷取處理utf 8編碼字串 規則 中文2個字元,數字 英文1個字元 擷取末尾不足乙個漢字的則捨棄。param string str param int len 截取出的字元長度 author flyer0126 since 2012 05 03 function substr utf8 cn str...

openjudge 編碼字串

總時間限制 1000ms 記憶體限制 65536kb 描述在資料壓縮中,乙個常用的方法是行程長度編碼壓縮。對於乙個待壓縮的字串,我們可以依次記錄每個字元及重複的次數。例如,待壓縮的字串為 aaabbbbcbb 壓縮結果為 a,3 b,4 c,1 b,2 這種壓縮對於相鄰資料重複較多的情況有效,如果重...