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