Przejdź do treści
HNarzędzia
pl
Kategorie

Kodowanie i dekodowanie URL online + parser adresów

Zamieniaj polskie znaki, spacje i symbole na sekwencje %XX i z powrotem, a parser pokaże protokół, host, ścieżkę i tabelę parametrów zapytania dowolnego linku.

  • Za darmo
  • Bez rejestracji
  • Prywatne
  • Działa lokalnie

Kodowanie i dekodowanie

encodeURIComponent - dla wartości parametrów: koduje też / ? & = # :

Parser adresu URL

Jak zakodować tekst do adresu URL?

  1. 1.

    Wybierz tryb

    „Koduj składnik” dla wartości parametru (np. frazy wyszukiwania), „Koduj cały URL” dla pełnego adresu, „Dekoduj” do odczytania sekwencji %XX.

  2. 2.

    Wklej tekst

    Wynik pojawia się na bieżąco. Opcja „Spacja jako +” odpowiada kodowaniu formularzy HTML.

  3. 3.

    Przeanalizuj link

    W sekcji „Parser adresu URL” wklej link, aby zobaczyć jego części i zdekodowane parametry w tabeli.

Na czym polega kodowanie URL (percent-encoding)?

Adres URL może zawierać tylko ograniczony zestaw znaków ASCII (RFC 3986). Pozostałe znaki zamienia się na bajty UTF-8, a każdy bajt zapisuje jako % i dwie cyfry szesnastkowe. Polskie litery zajmują po 2 bajty:

ZnakZakodowany
spacja%20 (lub + w formularzach)
ą%C4%85
ł%C5%82
ż%C5%BC
&%26
/%2F
?%3F
#%23

Przykład: fraza „buty zimowe & śniegowce” jako wartość parametru to buty%20zimowe%20%26%20%C5%9Bniegowce.

encodeURIComponent czy encodeURI?

  • encodeURIComponent koduje wszystko poza A-Z a-z 0-9 - _ . ! ~ * ' ( ). Używaj go do pojedynczych wartości - parametrów zapytania, fragmentów ścieżki. Dzięki temu znak & w wartości nie rozbije adresu na dwa parametry.
  • encodeURI dodatkowo zostawia znaki struktury adresu ; , / ? : @ & = + $ #. Służy do zakodowania całego, gotowego adresu, w którym są np. spacje lub polskie litery.

Najczęstszy błąd to użycie encodeURI do wartości parametru: ?q= + encodeURI("a&b") daje ?q=a&b, czyli dwa parametry zamiast jednego.

Budowa adresu URL

https://jan:haslo@sklep.example.pl:8080/buty/zimowe?kolor=czarny&rozmiar=42#opinie

  • protokół: https:
  • dane logowania: jan:haslo (przestarzałe, przeglądarki ostrzegają)
  • host: sklep.example.pl, port: 8080 (domyślnie 443 dla https, 80 dla http)
  • ścieżka: /buty/zimowe
  • query string: ?kolor=czarny&rozmiar=42 - pary klucz=wartość rozdzielone &
  • fragment: #opinie - nie jest wysyłany do serwera

Domeny z polskimi znakami (np. żółw.pl) są zapisywane w systemie Punycode (xn--…) - parser pokazuje tę postać.

Typowe problemy z kodowaniem adresów

  • Podwójne kodowanie - zakodowanie już zakodowanego tekstu zamienia % na %25, np. %C4%85 → %25C4%2585. Jeśli w adresie widzisz %25, najpierw zdekoduj tekst.
  • Spacja jako + lub %20 - formularze HTML (application/x-www-form-urlencoded) używają +, a ścieżki URL - %20. Plus w ścieżce oznacza dosłowny znak „+”.
  • Kodowanie inne niż UTF-8 - stare systemy zapisywały „ą” jako %B1 (ISO-8859-2) lub %B9 (Windows-1250). Takiej sekwencji nie da się zdekodować jako UTF-8 - narzędzie zgłosi błąd.
  • Polskie znaki w adresach stron - w adresach podstron lepiej ich w ogóle unikać; przyjazny adres bez ogonków utworzysz w generatorze slugów.

Najczęściej zadawane pytania

Dlaczego w linku pojawia się %20?

+
%20 to zakodowana spacja (bajt 0x20). Spacje nie są dozwolone w adresach URL, więc przeglądarka zamienia je na %20, a formularze HTML - na znak +.

Jak odczytać link z dziwnymi znakami typu %C5%BC?

+
Wybierz tryb „Dekoduj” i wklej link - sekwencje UTF-8 zostaną zamienione z powrotem na polskie litery (%C5%BC to „ż”).

Kiedy plus oznacza spację?

+
Tylko w query stringu kodowanym jak formularz HTML (application/x-www-form-urlencoded). W ścieżce adresu + to zwykły znak plus. Włącz opcję „Traktuj + jako spację”, jeśli dekodujesz dane z formularza.

Skąd błąd „niepoprawna sekwencja procentowa”?

+
Pojawia się, gdy po znaku % nie ma dwóch cyfr szesnastkowych (np. „100%”) albo gdy sekwencja nie tworzy poprawnego znaku UTF-8. Znak procentu w treści należy zakodować jako %25.

Czy narzędzie wysyła adresy na serwer?

+
Nie. Kodowanie i parsowanie wykonuje przeglądarka (funkcje encodeURIComponent i klasa URL), więc linki z tokenami pozostają prywatne.

Aktualizacja: