eh?

non ho capito il problema, il risultato è quello atteso dato che usi encodeURIComponent 2 volte sul server ti arriva l'encodeURIComponent dell'encodeURIComponent .... tutto regolare

codice:
var	unencoded = "è",
	encoded = encodeURIComponent(unencoded),
	doublencoded = encodeURIComponent(encoded);
	
alert([unencoded, encoded, doublencoded].join("\n"));