网上抄来的,具体是谁的也不清楚了。记录一下。 主要是解决PHP在应用 jQuery.ajax() 时的中文字符的编码转换,以防出现乱码 <?php //**************************************************** //以下方法为对URL地址进行类似javascript escape()编码 //**************************************************** function escape($str) { $res = @unpack("H*",iconv("gb2312","UCS-2",$str)); $res = preg_replace("/(.{4})/is","%u//1",$res[1]); return $res; } //**************************************************** //以下方法为对URL地址进行类似javascript unescape()解码 //**************************************************** 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","gb2312",pack("H4",substr($v,-4))); elseif(substr($v,0,3) == "&#x") $ar[$k] = iconv("UCS-2","utf-8",pack("H4",substr($v,3,-1))); elseif(substr($v,0,2) == "&#") { $ar[$k] = iconv("UCS-2","utf-8",pack("n",substr($v,2,-1))); } } return join("",$ar); } ?>