Avatar ·

¿Cómo codificar correctamente una URL en JavaScript? Diferencia entre encodeURI, encodeURIComponent y escape

¡Hola a todos! Soy nuevo en JavaScript y me encontré con un problema al trabajar con URL. Necesito enviar una solicitud GET al servidor con parámetros que contienen caracteres especiales, por ejemplo, espacios, cirílico o signos de interrogación. Aquí hay un ejemplo de mi código: ```javascript let baseUrl = "https://api.example.com/search"; let query = "JavaScript & HTML/CSS уроки"; let fullUrl = baseUrl + "?q=" + query; fetch(fullUrl) .then(response => response.json()) .then(data => console.log(data)); ``` Este código no funciona porque en la URL hay espacios y el símbolo `&`. Busqué en Google y encontré tres funciones: `escape()`, `encodeURI()` y `encodeURIComponent()`. Pero estoy confundido: ¿cuál es la correcta? Cuando uso `escape()`, parece que funciona, pero he oído que está obsoleta. Y `encodeURI()` no codifica todo, mientras que `encodeURIComponent()` codifica incluso las barras. Por favor, indíquenme cómo codificar correctamente una URL en JavaScript. ¿En qué casos se debe usar cada una de estas funciones? ¿Y qué hacer si