+
sign tiene un significado semántico en la cadena de consulta. Se usa para representar un espacio. Otro carácter que tiene importancia semántica en la cadena de consulta es el &
que se utiliza para separar los distintos var=value
pares de la cadena de consulta.
La mayoría de los scripts del lado del servidor decodificarían los parámetros de consulta antes de usarlos, para que a +
se convierta correctamente en un espacio. Ahora, si desea que un literal +
esté presente en la cadena de consulta, debe especificar en su %2B
lugar.
+
iniciar sesión la cadena de consulta está decodificada por URL en un espacio. %2B
en la cadena de consulta se descodifica la URL con un signo +.
Vea la diferencia entre
http://www.google.com/search?q=foo+bar
y
http://www.google.com/search?q=foo%2Bbar
En los ejemplos anteriores, la secuencia de comandos del servidor de Google decodifica la URL de los parámetros de consulta y luego los usa para realizar la búsqueda.
La codificación de URL no es más que un %
signo seguido del código hexadecimal del carácter especial. Por ejemplo, sabemos que el código hexadecimal de A
es 0x41 (decimal: 65). Prueba esto:
http://www.google.com/search?q=%41
Espero que esto aclare la codificación de URL.
Por lo tanto, si desea que el +
signo se conserve cuando un JavaScript obtiene una URL con +
signos en sus parámetros de consulta y un script del lado del servidor procesa los parámetros de consulta después de la decodificación de URL, debe codificar los parámetros de consulta en la URL. antes de usar la emisión de la solicitud get HTTP para que todos los +
signos se conviertan en %2B
's cuando la solicitud llega al script del lado del servidor. Ahora, cuando el script del lado del servidor decodifica la URL de la cadena de consulta, todo %2B
se convierte de nuevo en +
signos, que es lo que desea.
¿Ver Codificar URL en JavaScript? para aprender a codificar en URL los parámetros usando JavaScript. Respuesta corta de la discusión allí:
var encodedURL = "http://example.com/foo.php?var=" + encodeURIComponent(param);