Разница между encodeURI() и encodeURIComponent() в JavaScript заключается в том, что encodeURI() кодирует полный URL, а encodeURIComponent() — отдельный компонент URL, например, параметр, хеш, имя пути и т. п.. 24
encodeURI() кодирует только символы, полностью запрещённые в URL. 2 encodeURIComponent() кодирует эти же символы плюс, в дополнение к ним, символы #, $, &, +, ,, /, :, ;, =, ? и @. 2
Таким образом, для URL целиком можно использовать encodeURI(), а для параметров лучше выбрать encodeURIComponent(). 2
Выбор между этими функциями зависит от конкретных задач и требований к кодированию URL.