php检测字符编码GBK和UTF-8

function safeEncoding($string,$outEncoding ='UTF-8')    
    {    
        $encoding = "GBK";    
        for($i=0;$i<strlen($string);$i++)    
        {    
            if(ord($string{$i})<128)    
                  continue;    
            
            if((ord($string{$i})&224)==224)    
            {    
                  //第一个字节判断通过    
                 $char = $string{++$i};    
                  if((ord($char)&128)==128)    
                 {    
                       //第二个字节判断通过    
                     $char = $string{++$i};    
                    if((ord($char)&128)==128)    
                     {    
                          $encoding = "UTF-8";    
                          break;    
                     }    
                   }    
             }    
        
            if((ord($string{$i})&192)==192)    
              {    
                  //第一个字节判断通过    
                 $char = $string{++$i};    
                if((ord($char)&128)==128)    
                  {    
                      // 第二个字节判断通过    
                       $encoding = "GB2312";    
                    break;    
                }    
             }    
        }    
                 
        if(strtoupper($encoding) == strtoupper($outEncoding))    
            return $string;    
        else   
               return iconv($encoding,$outEncoding,$string);    
    }

判断$string是否是与当前字符编码一致,如果不一致进行转码(主要解决中文GBK和UTF-8 ASCII编码方式不同)

posted @ 2015-02-12 17:42  wolf_cub  阅读(607)  评论(0)    收藏  举报