12 0 0
PHP检测一个字符串是否为UTF8编码...
 Mr.Chen V 靓号标识 UID:1 地仙境
2026-05-08 445
利用PHP检测一个字符串是否为UTF8编码的函数实现方法

方法一:

function is_utf8($string){
return preg_match('%^(?:
[\x09\x0A\x0D\x20-\x7E] # ASCII
| [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte
| \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs
| [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte
| \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates
| \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3
| [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15
| \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16
)*$%xs', $string);
}


方法二:

/**
* 检测字符串是否为UTF8编码
* @param string $str 被检测的字符串
* @return boolean
*/
function is_utf8($str){
$len = strlen($str);
for($i = 0; $i < $len; $i++){
$c = ord($str[$i]);
if ($c > 128) {
if (($c > 247)) return false;
elseif ($c > 239) $bytes = 4;
elseif ($c > 223) $bytes = 3;
elseif ($c > 191) $bytes = 2;
else return false;
if (($i + $bytes) > $len) return false;
while ($bytes > 1) {
$i++;
$b = ord($str[$i]);
if ($b < 128 || $b > 191) return false;
$bytes--;
}
}
}
return true;
}




附件详情

  • 说明: 普通用户每次点击下载扣除1金币
  • 附件名:
    加载中...
  • 附件分类:
    暂无
  • 账户经验:
    0 点 [排行]
  • 账户金币:
    0 个 [兑换]
  • 账户灵石:
    0 枚 [充值]
  • 上传信息:
     Mr.Chen|2026-05-08
  • 下载地址:
加载中...
Mr.Chen Mr.Chen UID: 1 点歌于 3天前
点歌
看过的人 (30)
  • 海岸的蘤海
  • 限迷恋
  • 异魂梦
  • 旧人序
  • 悖论
最新回复 (12)
  • 控制欲 UID:10541 练气期
    2026-05-08
    13

    登录后可见回帖内容
  • 失温 UID:10565 练气期
    2026-05-08
    12

    登录后可见回帖内容
  • 醉温柔 UID:10542 练气期
    2026-05-08
    11

    登录后可见回帖内容

请先登录后发表评论!

返回

头条热榜

滑动查看更多

抖音热榜

滑动查看更多

快手热榜

滑动查看更多

2025年乙巳年蛇年
13:36:00
公历日期
9月26日
农历日期
八月初五
星期
星期五
下午好
金秋时节,愿您收获满满
距离国庆节还有5天

请先登录后发表评论!