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;
}
}