包含 unescape() 标签的文章

PHP的unescape()函数

昨天把自己的留言本后台回复改成AJAX无刷新的时候POST数据到服务器端中文总是乱码,郁闷的很~后来在网上查了一下才知道 JavaScript 用 XmlHTTP POST数据时中文是被当成 UTF-8 编码发送出去的,一个解决的方法是在客户端把中文用 JavaScript 的 escape() 函数编码了再到服务器端解码,可是在服务器端怎么解码呢,那就看下面一段我从网上找到的 PHP 中和 JavaScript 的 unescape() 函数功能一样的解码函数吧(这句话怎么听着有点别扭??)

PHP代码

function unescape($str){   
 $str = rawurldecode($str);    
 preg_match_all("/%u.{4}|&#x.{4};|&#d+;|.+/U",$str,$r);    
 $ar = $r[0];   
 foreach($ar as $k=>$v){   
  if(substr($v,0,2) == "%u"){   
   $ar[$k] = iconv("UCS-2","GBK",pack("H4",substr($v,-4)));   
   }elseif(substr($v,0,3) == "&#x"){   
   $ar[$k] = iconv("UCS-2","GBK",pack("H4",substr($v,3,-1)));   
   }elseif(substr($v,0,2) == "&#"){   
   $ar[$k] = iconv("UCS-2","GBK",pack("n",substr($v,2,-1)));   
  }   
 }   
 return join("",$ar);   
}


Pader 2008-6-1 1