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

php自動(dòng)識(shí)別文字編碼并轉(zhuǎn)換為目標(biāo)編碼的方法

 更新時(shí)間:2015年08月08日 14:52:27   作者:Minho  
這篇文章主要介紹了php自動(dòng)識(shí)別文字編碼并轉(zhuǎn)換為目標(biāo)編碼的方法,涉及php針對(duì)當(dāng)前編碼的判斷與對(duì)應(yīng)的編碼轉(zhuǎn)換實(shí)現(xiàn)技巧,需要的朋友可以參考下

本文實(shí)例講述了php自動(dòng)識(shí)別文字編碼并轉(zhuǎn)換為目標(biāo)編碼的方法。分享給大家供大家參考。具體如下:

在PHP處理頁(yè)面的時(shí)候,我們對(duì)于字符集的轉(zhuǎn)換都是采用了iconv或者mb_convert等函數(shù),但,這其實(shí)是有一個(gè)前提的。即我們事先得知道in和out是什么樣的編碼,我們才能進(jìn)行正確的轉(zhuǎn)換。

雖然大多數(shù)轉(zhuǎn)換都是在gbk和utf-8之間轉(zhuǎn),但如果不知道轉(zhuǎn)換對(duì)象的編碼怎么辦呢?谷歌出來(lái)這么一個(gè)函數(shù)safeEncoding,可以簡(jiǎn)單的識(shí)別UTF8和GBK的編碼。這個(gè)函數(shù)在一定程度上識(shí)別的很準(zhǔn)確,但是在一些比較復(fù)雜的環(huán)境中就不是那么的好用了. 下面我結(jié)合了GBK和UTF-8編碼的不同點(diǎn),使用正則表達(dá)式來(lái)判斷UTF-8編碼并使用mb_convert_encoding函數(shù)來(lái)進(jìn)行轉(zhuǎn)換. 在國(guó)內(nèi),基本上比較流行的編碼就是GBK和UTF-8, 所以這個(gè)函數(shù)是針對(duì)這兩個(gè)編碼進(jìn)行自動(dòng)轉(zhuǎn)換的.

/**
* @ string 需要轉(zhuǎn)換的文字
* @ encoding 目標(biāo)編碼
**/
function detect_encoding($string,$encoding = 'gbk'){
 $is_utf8 = preg_match('%^(?:[\x09\x0A\x0D\x20-\x7E]| [\xC2-\xDF][\x80-\xBF]| \xE0[\xA0-\xBF][\x80-\xBF] | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}  | \xED[\x80-\x9F][\x80-\xBF] | \xF0[\x90-\xBF][\x80-\xBF]{2} | [\xF1-\xF3][\x80-\xBF]{3} | \xF4[\x80-\x8F][\x80-\xBF]{2} )*$%xs', $string);
 if($is_utf8 && $encoding == 'utf8'){
  return $string;
 }elseif($is_utf8){
  return mb_convert_encoding($string, $encoding, "UTF-8");
 }else{
  return mb_convert_encoding($string, $encoding, 'gbk,gb2312,big5');
 }
} 

希望本文所述對(duì)大家的php程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論

静宁县| 岳池县| 盐边县| 沂南县| 西乌| 大洼县| 永吉县| 如东县| 珠海市| 凤庆县| 凤庆县| 九龙城区| 元氏县| 望江县| 万年县| 孙吴县| 保定市| 册亨县| 商河县| 四会市| 拜泉县| 榆林市| 宁都县| 田东县| 滦平县| 东乡县| 绵竹市| 大冶市| 遂溪县| 凤凰县| 武山县| 朝阳县| 辽阳县| 如皋市| 洪洞县| 昆山市| 五寨县| 泽州县| 磐石市| 阳春市| 崇义县|