In conclusione...

L'unico modo per venirne a capo è stato usare escape al posto di encodeURI. Ho cercato a lungo su internet, ma tutti quelli che avevano il mio problema hanno risolto sempre con escape.

Grazie per i suggerimenti. Sono stati molto di aiuto.

Penso che aprirò un tread simile su javascript, magari qualcuno ha una soluzione migliore.