preg_match_all("/[x80-xff].|[x01-x7f]+/",$str,$r);
$ar=$r[0];
foreach($aras$k=>$v){
if(ord($v[0])<128)
$ar[$k]=rawurlencode($v);
else
$ar[$k]="%u".bin2hex(iconv("GB2312","UCS-2",$v));
}
returnjoin("",$ar);
}
functionunescape($str){
$str=rawurldecode($str);
preg_match_all("/(?:%u.{4})|.+/",$str,$r);
$ar=$r[0];
foreach($aras$k=>$v){
if(substr($v,0,2)=="%u"&&strlen($v)==6)
$ar[$k]=iconv("UCS-2","GB2312",pack("H4",substr($v,-4)));
}
returnjoin("",$ar);
}