PHP自动判断字符串是gb2312还是utf8编码

来源:互联网 发布:python 对象 编辑:程序博客网 时间:2024/05/16 06:48

最近开发网站,需要判断用户是搜索什么关键词进来的。功能是实现了,但是遇到一个问题,就是不知道用户用的搜索引擎是什么编码的。因此经一阵搜索,终于找到下面的解决方案:

//返回: true – 含GB编码 false – 为UTF-8编码

复制代码
function is_gb2312($str){        for($i=0; $i<strlen($str); $i++) {                $v = ord( $str[$i] );                if( $v > 127) {                        if( ($v >= 228) && ($v <= 233) )                        {                                if(($i+2) >= (strlen($str)- 1)) return true;  // not enough characters                                $v1 = ord( $str[$i+1] );                                $v2 = ord( $str[$i+2] );                                if( ($v1 >= 128) && ($v1 <=191) && ($v2 >=128) && ($v2 <= 191) ) // utf编码                                        return false;                                else                                        return true;                        }                }        }        return true;}