程序员人生 网站导航

PHP完美判断字符串是否为utf-8的函数

栏目:php教程时间:2014-05-20 16:22:27
完美判断函数:

function is_utf8($gonten)
{
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;
}
}

使用方法 is_utf8($gonten)就可以判断字符串$gonten是否为utf-8编码了。


网上流传着这样一个判断函数,其实这函数判断是不完整的,函数如下

function is_utf8($string) {

return preg_match('%^(?:
[x09x0Ax0Dx20-x7E] # ASCII
| [xC2-xDF][x80-xBF] # non-overlong 2-byte
| xE0[xA0-xBF][x80-xBF] # excluding overlongs
| [xE1-xECxEExEF][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);
}

以上这段函数如判断“食”、“品”等文字时是判断为utf-8编码的,所以建议大家使用前者。
------分隔线----------------------------
------分隔线----------------------------

最新技术推荐