Jak kodować i dekodować adresy URL

· 3 min czytania

Jeśli kiedykolwiek widziałeś %20 w URL tam, gdzie powinna być spacja, lub %C3%A9 tam, gdzie powinien być znak z akcentem, napotkałeś kodowanie URL. To fundamentalny element sieci, a jego zrozumienie pomaga debugować zepsute linki, problemy z API i przesyłanie formularzy.

Co robi kodowanie URL

Adresy URL mogą zawierać tylko ograniczony zestaw bezpiecznych znaków: litery (A-Z, a-z), cyfry (0-9) i kilka znaków specjalnych (-, _, ., ~). Wszystko inne — spacje, akcenty, emoji, symbole jak &, =, #, ? — musi być przekonwertowane na bezpieczny format.

Kodowanie URL (zwane również percent-encoding) zastępuje niebezpieczne znaki znakiem %, po którym następuje ich szesnastkowa wartość bajtowa:

Znak Zakodowany
Spacja %20
& %26
= %3D
# %23
? %3F
/ %2F
@ %40

Kiedy kodowanie URL jest konieczne

Jak kodować i dekodować

  1. Wybierz kodowanie lub dekodowanie — wybierz kierunek. Weź encodeURIComponent dla parametrów zapytania lub encodeURI dla pełnych URL.
  2. Wklej swoje wejście — wprowadź tekst lub URL. Wynik aktualizuje się natychmiast.
  3. Skopiuj wyjście — użyj wyniku w swoim kodzie, żądaniu API lub przeglądarce.

Wskazówki

Najczęściej zadawane pytania

Jaka jest różnica między encodeURI a encodeURIComponent?

encodeURI zachowuje znaki ważne w strukturze URL (ukośniki, dwukropki, znaki zapytania). encodeURIComponent koduje wszystko oprócz liter, cyfr i kilku bezpiecznych znaków. Używaj encodeURIComponent dla wartości parametrów zapytań, encodeURI dla pełnych URL.

Dlaczego spacje stają się %20 lub +?

W kodowaniu URL spacje stają się %20. W danych formularza (application/x-www-form-urlencoded) spacje stają się +. Oba są ważne w swoich kontekstach, ale %20 jest uniwersalnym standardem dla URL.

Czy muszę kodować swoje URL ręcznie?

W większości przypadków Twój język lub framework zajmuje się kodowaniem automatycznie. Ręczne kodowanie jest przydatne, gdy konstruujesz URL ręcznie, debugujesz żądania API lub pracujesz z ciągami zapytań zawierającymi znaki specjalne.

Czy moje dane są wysyłane na serwer?

Nie. Całe kodowanie i dekodowanie odbywa się w Twojej przeglądarce.