日期:2013-04-23  浏览次数:20471 次

/*******************************
//GB转UTF-8编码
*******************************/
function gb2utf8($gbstr) {
 global $CODETABLE;
 if(trim($gbstr)=="") return $gbstr;
 if(empty($CODETABLE)){
  $filename = dirname(__FILE__)."/data/gb2312-utf8.table";
  $fp = fopen($filename,"r");
  while ($l = fgets($fp,15))
  { $CODETABLE[hexdec(substr($l, 0, 6))] = substr($l, 7, 6); }
  fclose($fp);
 }
 $ret = "";
 $utf8 = "";
 while ($gbstr) {
  if (ord(substr($gbstr, 0, 1)) > 0x80) {
   $thisW = substr($gbstr, 0, 2);
   $gbstr = substr($gbstr, 2, strlen($gbstr));
   $utf8 = "";
   @$utf8 = u2utf8(hexdec($CODETABLE[hexdec(bin2hex($thisW)) - 0x8080]));
   if($utf8!=""){
    for ($i = 0;$i < strlen($utf8);$i += 3)
     $ret .= chr(substr($utf8, $i, 3));
   }
  }
  else
  {
   $ret .= substr($gbstr, 0, 1);
   $gbstr = substr($gbstr, 1, strlen($gbstr));
  }
 }
 return $ret;
}