Przejdź do głównej treści

Jak poprawnie kodować parametry ciągu zapytania

Narzędzie ma dwa tryby. Komponent (encodeURIComponent) służy do pojedynczej nazwy lub wartości parametru, a Pełny URL (encodeURI) do całego adresu URL o już poprawnej strukturze. Pomylenie ich to najczęstsza przyczyna uszkodzonych ciągów zapytania.

Przykład krok po kroku

Tryb Pełny URL zostawia & wewnątrz wartości, więc serwer odczytuje dwa parametry zamiast jednego.

Dane wejściowe
https://example.com/search?q=salt & pepper&page=2
Wynik · encodeURI()
https://example.com/search?q=salt%20&%20pepper&page=2

Parametry odczytywane przez serwer

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

Zakodowanie wartości najpierw w trybie Komponent sprawia, że pozostaje ona jednym parametrem.

Dane wejściowe
salt & pepper
Wynik · encodeURIComponent()
salt%20%26%20pepper

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

Parametry odczytywane przez serwer

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

Tryb Komponent a Pełny URL – porównanie znak po znaku

ZnakKomponentPełny URL
:%3A:
/%2F/
?%3F?
#%23#
&%26&
=%3D=
+%2B+
␠%20%20
é%C3%A9%C3%A9

Jak działa narzędzie

  • Koduj każdą nazwę i wartość parametru osobno w trybie Komponent, który zamienia na sekwencje & = ? # + i /.
  • Połącz zakodowane pary w postaci nazwa=wartość znakiem & i dodaj wynik po znaku ? w adresie URL.
  • Trybu Pełny URL używaj tylko dla całego adresu: zostawia on : / ? # & = + bez zmian, więc nie chroni wartości, która je zawiera.

Poradniki kodowania URL