国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - 解析使用substr截取UTF-8中文字符串出現亂碼的問題

解析使用substr截取UTF-8中文字符串出現亂碼的問題

2020-04-21 11:58PHP教程網 PHP教程

本篇文章是對使用substr截取UTF-8中文字符串出現亂碼的問題進行了詳細的分析介紹,需要的朋友參考下

我們知道有時候使用substr來截取UTF-8中文字符串的時候,經常會出現亂碼,為什么會出現這樣的問題呢,本文告訴你答案。
看這樣一段代碼吧(字符編碼為UTF-8):

復制代碼 代碼如下:


<?
$str = '都知道strlen與mb_strlen是求字符串長度的函數';
echo strlen($str)'.<br />'.mb_strlen($str,'utf-8');
?>


運行上述代碼,返回值如下:
66
34
怎么樣?strlen中,中文是三個字節的長度,英文則是一個字節的長度!mb_strlen中,都被計算為一字節的長度!所以,我們有時候用substr來截取UTF-8中文字符串的時候,經常會出現亂碼,就是這個原因了!
下面提供一個截取UTF-8字符串的函數:

復制代碼 代碼如下:


function cutstr($sourcestr,$cutlength){
$returnstr = '';
$i = 0;
$n = 0;
$str_length = strlen($sourcestr);
$mb_str_length = mb_strlen($sourcestr,'utf-8');
while(($n < $cutlength) && ($i <= $str_length)){
$temp_str = substr($sourcestr,$i,1);
$ascnum = ord($temp_str);
if($ascnum >= 224){
$returnstr = $returnstr.substr($sourcestr,$i,3);
$i = $i + 3;
$n++;
}
elseif($ascnum >= 192){
$returnstr = $returnstr.substr($sourcestr,$i,2);
$i = $i + 2;
$n++;
}
elseif(($ascnum >= 65) && ($ascnum <= 90)){
$returnstr = $returnstr.substr($sourcestr,$i,1);
$i = $i + 1;
$n++;
}
else{
$returnstr = $returnstr.substr($sourcestr,$i,1);
$i = $i + 1;
$n = $n + 0.5;
}
}
if ($mb_str_length > $cutlength){
$returnstr = $returnstr . "...";
}
return $returnstr;
}


使用例子:

復制代碼 代碼如下:


<?
$str = '有效期最長三個月,超過有效期系統將自動刪除本條信息';
//echo strlen($str);
//echo '<hr />'.mb_strlen($str,'utf-8');
echo '<hr />'.$str;
echo '<hr />'.cutstr($str,24);
?>

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久国产精品久久精品国产演员表 | 国产一级片播放 | 日韩精品网站 | 中文字幕一区二区三区四区 | 亚洲国产一区在线 | 最近免费中文字幕大全免费版视频 | 亚洲在线观看一区二区 | 中文字幕日本一区二区 | 午夜av电影 | 久久成人国产精品 | 亚洲国产一区二区三区精品 | 国产中文视频 | 亚洲精品视频在线播放 | 成人精品一区二区三区视频播放 | 黄色一级视频 | 成人精品在线 | 深夜福利影院 | 国产日韩中文字幕 | 中文字幕最新在线 | 久久久久久久久一区二区三区 | a在线观看 | 日韩高清国产一区在线 | 精品国产鲁一鲁一区二区在线观看 | 精品一区二区三区中文字幕老牛 | 成人av入口 | 亚洲国产精品一区二区第一页 | 欧美精品一区在线 | 免费看一区二区三区 | 成人精品视频一区二区三区 | 亚洲免费视频观看 | 精品视频免费在线 | 亚洲一区 中文字幕 | 精品亚洲一区二区 | 精品一区二区电影 | 超碰偷拍 | 日韩一区二区在线观看 | 亚洲视频免费观看 | 看特级毛片 | 日韩精品一区二区三区中文字幕 | www日韩 | 欧美精品一区二区三区四区 |