首页 » 编程语言 » PHP » 使用正则检测是否为utf8编码

使用正则检测是否为utf8编码

 

以下函数用来检测字符编码是不是utf-8,是返回true,不是返回false。

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);
}
$str = "牛皮凉鞋";
var_dump(is_utf8($str));

utf8规则点击查看《utf8编码规则

技术交流

原文链接:使用正则检测是否为utf8编码,转载请注明来源!

原文链接:使用正则检测是否为utf8编码,转载请注明来源!

2