PHP自动判断字符串是gb2312还是utf8编码-阿里云开发者社区

开发者社区> 老朱教授> 正文

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

简介:
+关注继续查看

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

//返回: 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;
}


本文转自黄聪博客园博客,原文链接:http://www.cnblogs.com/huangcong/archive/2012/12/15/2818962.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
像职业选手样编码:地道Python
Code Like a Pythonista: Idiomatic Python David Goodger goodger@python.org http://python.net/~goodger In this interactive tutorial, we'll cover man...
1034 0
+关注
2857
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载