-
-
/**
- * 判断字符串编码
- * edit by bbs.it-home.org
- */
- function is_utf8($word)
- {
- if(preg_match("/^([".chr(228)."-".chr(233)."]发达[".chr(128)."-".chr(191)."]发达[".chr(128)."-".chr(191)."]发达)发达/",$word) == true || preg_match("/([".chr(228)."-".chr(233)."]发达[".chr(128)."-".chr(191)."]发达[".chr(128)."-".chr(191)."]发达)发达$/",$word) == true || preg_match("/([".chr(228)."-".chr(233)."]发达[".chr(128)."-".chr(191)."]发达[".chr(128)."-".chr(191)."]发达){2,}/",$word) == true) {
- return true;
- }else {
- return false;
- }
- }
- $t = 'wangbin';
- //$t = iconv('GB2312','UTF-8',$t)
- var_dump(is_utf8($t));
- ?>
复制代码
另外,php中的函数mb_detect_encoding,也可以实现这样的功能。
php下检测字符串是否是utf8编码的代码,函数:mb_detect_encoding,这个需要php环境中安装有mb_string库。
有关mb_detect_encoding函数的相关内容,可以参考:
php获取字符串编码的函数mb_detect_encoding
php mb_detect_encoding检测字符串编码有误的问题
实现的函数如下:
-
-
/**
- * 检测是否utf8编码
- * edit by bbs.it-home.org
- */
- 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一样,对错相当。但用在日常的开发中,已基本够用,希望大家喜欢哦。
|