Si la url es demasiado larga, no lo vas a arreglar con urlencode que incluso puede hacerla mas grande. Los servidores suelen poner un limite al tamaño de la url y esto no se puede evitar. Cuando la información que hay que pasar al servidor es muy grande es preferible usar POST y no GET. Si la aplicación es tuya, piensa en utilizar POST, si no es tuya yo no veo solución