Credo che il problema sia che quando invii i dati tramite get i caratteri speciali vengono codificati in esadecimale preceduti dal simbolo percentuale quindi interpreta %de come carattere speciale. Prova ad aggiungere 25 e vedi che succede:
codice:str= "COGNOME LIKE '%25" + cognome + "%25'"