Может быть полезно использовать nodejs для кодирования материала url:
$ node -e 'console.log(encodeURIComponent("A%b$c@d!e#f"))'
A%25b%24c%40d!e%23f
Декодировать, чтобы перейти в другую сторону:
$ node -e 'console.log(decodeURIComponent("A%25b%24c%40d!e%23f"))'
A%b$c@d!e#f