成人精品一区二区三区中文字幕-成人精品一区二区三区-成人精品一级毛片-成人精品亚洲-日本在线视频一区二区-日本在线视频免费

導航首頁 ? 技術教程 ? PHP正確解析UTF-8字符串技巧應用
全站頭部文字 我要出現在這里
PHP正確解析UTF-8字符串技巧應用 745 2023-12-09   

在《學習PHP&MYSQL之——字符編碼篇(一)》中介紹了Unicode與UTF-8的轉換關系,總結了一個UTF-8的編碼規則,根據這個編碼規則,寫一個UTF-8編碼的解析程序,以下是PHP的實現:

<?php
/*
程序功能,$str是中英文混合的UTF-8編碼字符串,
將此字符串根據UTF-8的編碼規則正確的解碼并顯示。
*/


$str = '今天非常Happy,所有決定去KFC吃可樂雞翅!!!';

/*
$str 是待截取的字符串
$len 是截取的字符數
*/
function utf8sub($str,$len) {
if($len <= 0){
return '';
}

$offset = 0; // 截取高位字節時的偏移量
$chars = 0; // 截取到的字符數
$res = ''; // 存放截取的結果字符串

while($chars < $len){
// 先取字符串的第一個字節
// 將它轉為十進制
// 再轉為二進制
$high = ord(substr($str,$offset,1));

// echo '$high='. $high .'<br />';

if($high == null ){ // 如果取出高位為null,證明已經取到末尾,直接break
break;
}
if(($high>>2) === 0x3F){ // 將高位右移2位,和二進制111111比較,相同則取6個字節
// 截取2個字節
$count = 6;
}else if(($high>>3) === 0x1F){ // 將高位右移2位,和二進制11111比較,相同則取5個字節
// 截取3個字節
$count = 5;
}else if(($high>>4) === 0xF){ // 將高位右移2位,和二進制1111比較,相同則取4個字節

// 截取4個字節
$count = 4;
}else if(($high>>5) === 0x7){ // 將高位右移2位,和二進制111比較,相同則取3個字節

// 截取5個字節
$count = 3;
}else if(($high>>6) === 0x3){ // 將高位右移2位,和二進制11比較,相同則取2個字節
// 截取6個字節
$count = 2;
}else if(($high>>7) === 0x0){ // 將高位右移2位,和二進制0比較,相同則取1個字節
$count = 1;
}
// echo '$count='.$count.'<br />';

$res .= substr($str,$offset,$count); // 取出一個字符與$res字符串連接
$chars += 1; // 截取到的字符數+1
$offset += $count; // 截取高位偏移量向后移$count字節
}
return $res;
}

echo utf8sub($str,100);

主站蜘蛛池模板: 大海啊故乡钢琴谱| 阿尔法变频器说明书| 白上之黑| 原纱央莉| 乱世危情电视剧演员表| 三年电影| 浙江卫视节目在线观看直播| cctv17农业农村频道在线直播| 烽火流金电视剧免费观看完整版| 米卡| 睡衣派对| 安志杰电影全集大全| 风霜踩泥| 美女写真裸体| 母亲电影韩国完整版免费观看| 浙江卫视今天节目单| 梁祝吉他谱独奏完整| 女公安毛片免费观看| 漂流者| 张志忠演员| 影子是我的好朋友仿句怎么写| 幼儿园一日活动的组织与实施| 戒色视频| 《不扣钮的女孩》| 小孩几个月会翻身| 艳肉观世音性三级| 富二代| 性的视频| 大理旅游地图| 实力主义教室第三季| 午间剧场| 胡晶| 吕建中| 唐人街探案一免费观看完整版高清| 安东诺夫机场电影叫什么名字| 妻子的秘密日本电影| 去有风的地方| 托比·斯蒂芬斯| 少妇灌肠调教日本视频| 郑中基的电影全部作品| 纳得克·库吉米亚|

!!!站長長期在線接!!!

網站、小程序:定制開發/二次開發/仿制開發等

各種疑難雜癥解決/定制接口/定制采集等

站長微信:lxwl520520

站長QQ:1737366103