Тот факт, что в адресной строке отображаются незакодированные символы, не означает, что ваши данные не закодированы должным образом.Firefox (например) может и будет пытаться декодировать символы в адресе URL, чтобы сделать его более читабельным (я полагаю).
Даже если вы введете некоторые закодированные символы вручную, например, перейдите к:
http://google.com?opt=test%20me%20or%20not
URL, видимый в адресной строке, будет «декодирован» - вы не увидите% 20.
РЕДАКТИРОВАТЬ: получить знак плюс вместо% 20 вы можетеЗамените пробелы вручную перед использованием encodeURI:
var url = encodeURI("pqr xyz".replace(/\s/, '+'));