最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于PHP自動判斷字符集并轉(zhuǎn)碼的詳解

 更新時間:2013年06月26日 10:46:36   作者:  
本篇文章是對PHP自動判斷字符集并轉(zhuǎn)碼進行了詳細的分析介紹,需要的朋友參考下
原理很簡單,因為gb2312/gbk是中文兩字節(jié),這兩個字節(jié)是有取值范圍的,而utf-8中漢字是三字節(jié),同樣每個字節(jié)也有取值范圍。而英文不 管在何種編碼情況下,都是小于128,只占用一個字節(jié)(全角除外)。
如果是文件形式的編碼檢查,還可以直接check utf-8的BOM信息。話不多說,直接上函數(shù),這個函數(shù)是用來對字符串進行檢查和轉(zhuǎn)碼的。
復(fù)制代碼 代碼如下:

<?php
function safeEncoding($string,$outEncoding ='UTF-8')   
{   
 $encoding = "UTF-8";   
 for($i=0;$i<strlen($string);$i++)   
 {   
  if(ord($string{$i})<128)   
        continue;   

  if((ord($string{$i})&224)==224)   
  {   
     //第一個字節(jié)判斷通過   
       $char = $string{++$i};   
     if((ord($char)&128)==128)   
       {   
             //第二個字節(jié)判斷通過   
           $char = $string{++$i};   
             if((ord($char)&128)==128)   
           {   
                $encoding = "UTF-8";   
                break;   
           }   
         }   
   }   

  if((ord($string{$i})&192)==192)   
       {   
           //第一個字節(jié)判斷通過   
          $char = $string{++$i};   
         if((ord($char)&128)==128)   
           {   
            // 第二個字節(jié)判斷通過   
                $encoding = "GB2312";   
    break;   
   }   
      }   
 }   

 if(strtoupper($encoding) == strtoupper($outEncoding))   
  return $string;   
 else  
        return iconv($encoding,$outEncoding,$string);   
}
?>

相關(guān)文章

最新評論

保康县| 襄城县| 海阳市| 登封市| 左贡县| 兴隆县| 晋宁县| 拉萨市| 广元市| 洛川县| 大荔县| 许昌市| 铁岭市| 庄河市| 东兰县| 漳浦县| 特克斯县| 绥阳县| 胶南市| 兴化市| 化德县| 榆树市| 迁安市| 香河县| 新昌县| 荔浦县| 大连市| 沙坪坝区| 井研县| 凉城县| 仪陇县| 柳河县| 茌平县| 四子王旗| 寻甸| 平顺县| 通河县| 通州市| 巴青县| 泾源县| 中阳县|