PHP自動(dòng)判斷字符集并轉(zhuǎn)碼的方法-創(chuàng)新互聯(lián)

小編給大家分享一下PHP自動(dòng)判斷字符集并轉(zhuǎn)碼的方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

目前累計(jì)服務(wù)客戶(hù)近千家,積累了豐富的產(chǎn)品開(kāi)發(fā)及服務(wù)經(jīng)驗(yàn)。以網(wǎng)站設(shè)計(jì)水平和技術(shù)實(shí)力,樹(shù)立企業(yè)形象,為客戶(hù)提供成都網(wǎng)站建設(shè)、做網(wǎng)站、網(wǎng)站策劃、網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)絡(luò)營(yíng)銷(xiāo)、VI設(shè)計(jì)、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。成都創(chuàng)新互聯(lián)公司始終以務(wù)實(shí)、誠(chéng)信為根本,不斷創(chuàng)新和提高建站品質(zhì),通過(guò)對(duì)領(lǐng)先技術(shù)的掌握、對(duì)創(chuàng)意設(shè)計(jì)的研究、對(duì)客戶(hù)形象的視覺(jué)傳遞、對(duì)應(yīng)用系統(tǒng)的結(jié)合,為客戶(hù)提供更好的一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶(hù),共同發(fā)展進(jìn)步。

原理很簡(jiǎn)單,因?yàn)間b2312/gbk是中文兩字節(jié),這兩個(gè)字節(jié)是有取值范圍的,而utf-8中漢字是三字節(jié),同樣每個(gè)字節(jié)也有取值范圍。而英文不 管在何種編碼情況下,都是小于128,只占用一個(gè)字節(jié)(全角除外)。
如果是文件形式的編碼檢查,還可以直接check utf-8的BOM信息。話(huà)不多說(shuō),直接上函數(shù),這個(gè)函數(shù)是用來(lái)對(duì)字符串進(jìn)行檢查和轉(zhuǎn)碼的。

<?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)    
  {    
     //第一個(gè)字節(jié)判斷通過(guò)    
       $char = $string{++$i};    
     if((ord($char)&128)==128)    
       {    
             //第二個(gè)字節(jié)判斷通過(guò)    
           $char = $string{++$i};    
             if((ord($char)&128)==128)    
           {    
                $encoding = "UTF-8";    
                break;    
           }    
         }    
   }    
  if((ord($string{$i})&192)==192)    
       {    
           //第一個(gè)字節(jié)判斷通過(guò)    
          $char = $string{++$i};    
         if((ord($char)&128)==128)    
           {    
            // 第二個(gè)字節(jié)判斷通過(guò)    
                $encoding = "GB2312";    
    break;    
   }    
      }    
 }    
 if(strtoupper($encoding) == strtoupper($outEncoding))    
  return $string;    
 else   
        return iconv($encoding,$outEncoding,$string);    
}
?>

以上是“PHP自動(dòng)判斷字符集并轉(zhuǎn)碼的方法”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

新聞標(biāo)題:PHP自動(dòng)判斷字符集并轉(zhuǎn)碼的方法-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://muchs.cn/article44/djiehe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、App開(kāi)發(fā)、網(wǎng)站導(dǎo)航、動(dòng)態(tài)網(wǎng)站、定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開(kāi)發(fā)