日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > php mb_detect_encoding判斷字符串編碼方法

php mb_detect_encoding判斷字符串編碼方法

來源:程序員人生   發布時間:2013-11-29 21:00:02 閱讀次數:3122次

在php中利用mb_detect_encoding可以判斷給我們的字符是那個類型的編碼了,從而我們就可以利用inconv進行字符轉換了,下面給大家介紹幾個例子.

例子,利用mb_detect_encoding()判斷字符是否為uft-8編碼,代碼如下:

  1. $encode = mb_detect_encoding($qarray('GB2312','GBK','UTF-8')); 
  2. echo $encode."<br/>"
  3. if($encode=="GB2312"
  4.     $q = iconv("GBK","UTF-8",$q); 
  5. else if($encode=="GBK"
  6.     $q = iconv("GBK","UTF-8",$q); 
  7. else if($encode=="EUC-CN"
  8.     $q = iconv("GBK","UTF-8",$q); 
  9. else//CP936 
  10.     //$q = iconv("GB2312","UTF-8",$q); 

可是 mb_detect_encoding 存在一個硬傷,經常出現判斷不準確的情況,或許這樣就可以解決,代碼如下:

  1. // 使用 iconv 轉換并判斷是否等值,效率不高 
  2. function is_utf8 ($str) { 
  3.     if ($str === iconv('UTF-8''UTF-8//IGNORE'$str)) { 
  4.         return 'UTF-8'
  5.     } 
  6. // 多種編碼的情況 
  7. function detect_encoding ($str) { 
  8.     foreach (array('GBK''UTF-8'as $v) { 
  9.         if ($str === iconv($v$v . '//IGNORE'$str)) { 
  10.             return $v
  11.         } 
  12.     } 

通過以上方式得到字符串編碼信息后,就可以利用 iconv 或 mb_convert_encoding 來轉換編碼了.

問題:可是當 $keytitle  = '%D0%BE%C6%AC'; 時,檢測結果卻是UTF-8,這其實不算是bug,我們不應當過于依賴mb_detect_encoding,當字符串較短時,檢測結果產生偏差的可能性很大.

解決方法,代碼如下:

$encode = mb_detect_encoding($keytitle, array('ASCII','GB2312′,'GBK’,'UTF-8');

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产福利专区 | 亚洲视频免费在线观看 | 国产精品69久久久久水密桃 | 欧美91| 草久久| 91麻豆精品国产自产在线观看一区 | 91香蕉视频好色先生 | 亚洲欧美日韩国产 | 亚洲精品1 | 久久99成人 | 亚洲欧美日韩精品久久亚洲区 | 成人黄色免费网址 | 午夜激情在线播放 | 九九视频网站 | 国产一区二区三区在线 | av片在线播放 | 成人福利在线观看 | 波多野结衣中文字幕久久 | 久久久久久久久久久久久女国产乱 | 91新网站| 欧美久久久久久久久久 | 国产精品成人一区二区 | 九九国产精品视频 | 精品国产一区三区 | 成人国产一区 | 久久日韩精品 | 夜夜嗨av色综合久久久综合网 | 精品国产一区二区三区免费 | 久久成人久久爱 | 国产视频一二区 | av五月| 国产免费看片 | 国产精品国产精品国产专区不卡 | 在线免费观看黄色 | 黄色片一级黄色片 | 亚洲区av | 一二区av | www.麻豆 | 日韩在线毛片 | 国产 日韩 欧美 在线 | 久久久久精 |