2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > PHP检测字符串是否为UTF8编码的常用方法

PHP检测字符串是否为UTF8编码的常用方法

时间:2021-05-16 21:01:02

相关推荐

PHP检测字符串是否为UTF8编码的常用方法

php教程|php手册

PHP,检测,字符串,UTF8,编码

php教程-php手册

易语言扫号器源码,vscode段落修饰快捷键,ubuntu 上网本,华为云tomcat部署,sqlite详细教材,网页设计英文用于,win ftp服务器如何配置,时间区间插件,vue前端框架权限,车上有爬虫,php 当月最后一天,神马搜索seo,springboot数据分表,获取网站 图标,网页 弹出特效,利用模板统一站点风格,仿阿里云后台模板,jQuery可以用html页面,商品进销存管理系统 源码,微擎小程序新建空白lzw

这篇文章主要介绍了PHP检测字符串是否为UTF8编码的常用方法,列举了四个实例从不同的角度来实现这一功能,是非常实用的技巧,具有一定的学习借鉴价值,需要的朋友可

带源码报告,ubuntu端口占用清除,控制台起服务tomcat,网络爬虫信息获取,为什么大家都瞧不起php,seo客户来源lzw

审批管理 源码,ubuntu修复软件安装,qq日志爬虫 get,php房源,seo链轮2.0lzw

本文实例总结了PHP检测字符串是否为UTF8编码的常用方法。分享给大家供大家参考。具体实现方法如下:

检测字符串编码可以有很多种方法,如利用ord获得字符的进制然后进入判断,或利用mb_detect_encoding函数来处理,下面整理了四种常用方法供大家参考。

例子1

复制代码 代码如下:

/**

* 检测字符串是否为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 191) return false;

$bytes–;

}

}

}

return true;

}

例子2

复制代码 代码如下:

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);

}

准确率基本和mb_detect_encoding()一样,,要对一起对,要错一起错。

编码检测不可能100%准确,这个东西已经可以基本满足要求了。

例子3

复制代码 代码如下:

function mb_is_utf8($string)

{

return mb_detect_encoding($string, ‘UTF-8’) === ‘UTF-8’;//新发现

}

例子4

复制代码 代码如下:

// Returns true if $string is valid UTF-8 and false otherwise.

function is_utf8($word)

{

if (preg_match(“/^([“.chr(228).”-“.chr(233).”]{1}[“.chr(128).”-“.chr(191).”]{1}[“.chr(128).”-“.chr(191).”]{1}){1}/”,$word) == true || preg_match(“/([“.chr(228).”-“.chr(233).”]{1}[“.chr(128).”-“.chr(191).”]{1}[“.chr(128).”-“.chr(191).”]{1}){1}$/”,$word) == true || preg_match(“/([“.chr(228).”-“.chr(233).”]{1}[“.chr(128).”-“.chr(191).”]{1}[“.chr(128).”-“.chr(191).”]{1}){2,}/”,$word) == true)

{

return true;

}

else

{

return false;

}

} // function is_utf8

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。