最新国产好看的视频,伊人天堂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處理頁面的時(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ì)象的編碼怎么辦呢?谷歌出來這么一個(gè)函數(shù)safeEncoding,可以簡(jiǎn)單的識(shí)別UTF8和GBK的編碼。這個(gè)函數(shù)在一定程度上識(shí)別的很準(zhǔn)確,但是在一些比較復(fù)雜的環(huán)境中就不是那么的好用了. 下面我結(jié)合了GBK和UTF-8編碼的不同點(diǎn),使用正則表達(dá)式來判斷UTF-8編碼并使用mb_convert_encoding函數(shù)來進(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)論

常德市| 迭部县| 正定县| 资溪县| 西藏| 贡觉县| 北京市| 衡阳市| 阿坝县| 彭水| 海晏县| 嫩江县| 南木林县| 新河县| 申扎县| 衡阳市| 思南县| 竹北市| 石台县| 郴州市| 鄱阳县| 漳浦县| 大安市| 郓城县| 祁连县| 贺州市| 涪陵区| 格尔木市| 尉氏县| 万山特区| 无为县| 大石桥市| 芜湖县| 宝清县| 淮阳县| 沁阳市| 松江区| 海伦市| 六枝特区| 博爱县| 平果县|