ti consiglio di aspettare risposte più autorevoli della mia...
cmq secondo me dovresti provare ad usare/studiare la funzione urldecode (opposta ad urlencode)
http://php.net/manual/en/function.urldecode.php
nella guida ufficiale ti invito a leggere ciò:
Warning
The superglobals $_GET and $_REQUEST are already decoded. Using urldecode() on an element in $_GET or $_REQUEST could have unexpected and dangerous results.
Inoltre tra i miei appunti ho segnato questa articolazione di funzioni che però non ho mai testato:
$decode_stringa = htmlentities(utf8_decode($_GET['stringa']),ENT_QUOTES,'ISO-8859-1');