public function utf8_urldecode($str) { if(strpos('+'.$str,'%u')>0) { $str = preg_replace("/%u([0-9a-f]{3,4})/i","&#x\\1;",urldecode($str)); return html_entity_decode($str,null,'UTF-8');; } else if(strpos('+'.$str,'%')) { return urldecode($str); } else { return $str; } }