Vai al contenuto principale

Come codificare correttamente i parametri della query string

Lo strumento ha due modalità. Componente (encodeURIComponent) è per un singolo nome o valore di parametro; URL completo (encodeURI) è per un URL intero con una struttura già corretta. Confonderle è la causa più comune di query string non funzionanti.

Esempio svolto

La modalità URL completo lascia la & nel valore, quindi il server legge due parametri invece di uno.

Valore di ingresso
https://example.com/search?q=salt & pepper&page=2
Risultato · encodeURI()
https://example.com/search?q=salt%20&%20pepper&page=2

Parametri letti dal server

  • "q" = "salt "
  • " pepper" = ""
  • "page" = "2"

Codificare prima il valore in modalità Componente lo mantiene come un unico parametro.

Valore di ingresso
salt & pepper
Risultato · encodeURIComponent()
salt%20%26%20pepper

https://example.com/search?q=salt%20%26%20pepper&page=2

Parametri letti dal server

  • "q" = "salt & pepper"
  • "page" = "2"

Modalità Componente e URL completo a confronto, carattere per carattere

CarattereComponenteURL completo
:%3A:
/%2F/
?%3F?
#%23#
&%26&
=%3D=
+%2B+
␠%20%20
é%C3%A9%C3%A9

Come si comporta lo strumento

  • Codifica separatamente ogni nome e valore di parametro in modalità Componente, che esegue l’escape di & = ? # + e /.
  • Unisci le coppie codificate come nome=valore separate da & e aggiungi il risultato dopo il ? dell’URL.
  • Usa la modalità URL completo solo su un URL intero: mantiene intatti : / ? # & = + e quindi non protegge un valore che li contiene.

Guide alla codifica degli URL