01 <?php 02 function safeEncoding($string,$outEncoding ='UTF-8') 03 { 04 $encoding = "UTF-8"; 05 for($i=0;$i<strlen($string);$i++) 06 { 07 if(ord($string{$i})<128) 08 continue; 09 10 if((ord($string{$i})&224)==224) 11 { 12 //第一个字节判断通过 13 $char = $string{++$i}; 14 if((ord($char)&128)==128) 15 { 16 //第二个字节判断通过 17 $char = $string{++$i}; 18 if((ord($char)&128)==128) 19 { 20 $encoding = "UTF-8"; 21 break; 22 } 23 } 24 } 25 26 if((ord($string{$i})&192)==192) 27 { 28 //第一个字节判断通过 29 $char = $string{++$i}; 30 if((ord($char)&128)==128) 31 { 32 // 第二个字节判断通过 33 $encoding = "GB2312"; 34 break; 35 } 36 } 37 } 38 39 if(strtoupper($encoding) == strtoupper($outEncoding)) 40 return $string; 41 else 42 return iconv($encoding,$outEncoding,$string); 43 } 44 ?>