Utilia

Koder i dekoder URL

Darmowy koder i dekoder URL. Koduj procentowo parametry zapytań lub całe adresy, dekoduj sekwencje %XX i obsługuj + jako spację. Działa w przeglądarce.

Tryb

Jak korzystać z kodera i dekodera URL

  1. Wybierz Koduj, aby zamienić tekst na postać bezpieczną w adresie URL, albo Dekoduj, aby zamienić tekst zakodowany procentowo z powrotem na czytelne znaki.
  2. Przy kodowaniu wybierz tryb: Składnik dla pojedynczej wartości (np. parametru zapytania lub segmentu ścieżki) albo Pełny URL, aby zakodować cały adres, zachowując jego strukturę.
  3. Przy dekodowaniu danych z formularza HTML lub z query stringa włącz Traktuj + jako spację, aby znaki + zamieniły się w spacje.
  4. Wklej tekst i skopiuj wynik. Jeśli sekwencja procentowa jest uszkodzona, narzędzie zgłosi błąd, zamiast zgadywać.

Czym jest kodowanie URL?

Adresy URL mogą zawierać tylko ograniczony zestaw znaków ASCII. Niektóre znaki, takie jak /, ?, #, & i =, są zastrzeżone, bo oddzielają części adresu: ścieżkę, parametry zapytania i fragment. Inne, np. spacje, cudzysłowy, litery z polskimi znakami czy emoji, są po prostu niedozwolone. Kodowanie URL, nazywane też kodowaniem procentowym (percent-encoding), rozwiązuje oba problemy, zastępując każdy problematyczny bajt znakiem % i dwiema cyframi szesnastkowymi.

Tekst jest najpierw zamieniany na bajty UTF-8, a każdy bajt jest kodowany osobno. Spacja staje się %20, znak & – %26, „ł” (dwa bajty w UTF-8) – %C5%82, „é” – %C3%A9, a emoji 😀 (cztery bajty) – %F0%9F%98%80. Znaki niezastrzeżone, czyli litery łacińskie, cyfry oraz - _ . ~, nigdy nie wymagają kodowania.

Tryb składnika a tryb pełnego URL

Wybór właściwego trybu to najważniejsza decyzja, a pomyłka jest klasycznym źródłem błędów.

Tryb Składnik działa jak encodeURIComponent w JavaScripcie. Koduje każdy zastrzeżony znak, więc wynik można bezpiecznie umieścić w jednej części adresu. Używaj go do wartości parametrów zapytania, segmentów ścieżki i wszystkiego, co wpisał użytkownik. Na przykład fraza rock & roll staje się rock%20%26%20roll. Gdyby & nie zostało zakodowane, serwer odczytałby roll jako początek nowego parametru.

Tryb Pełny URL działa jak encodeURI. Zakłada, że dane wejściowe to już kompletny adres, i zachowuje znaki nadające mu strukturę, takie jak : / ? # & i =, kodując przy tym spacje i znaki spoza ASCII. Używaj go, by uporządkować adres w rodzaju https://example.com/café menu?q=tea do postaci https://example.com/caf%C3%A9%20menu?q=tea. Nie stosuj go do pojedynczych wartości: & w wartości zostałoby niezakodowane i zepsułoby parametry zapytania.

Dobra zasada: buduj adresy z części, każdą wartość koduj w trybie składnika, a trybu pełnego URL używaj tylko dla adresów, które dostajesz już złożone.

Znak + i kodowanie formularzy

Formularze HTML wysyłane jako application/x-www-form-urlencoded kodują spacje jako + zamiast %20. Dlatego adresy wyszukiwania często wyglądają jak ?q=hello+world. Standardowe dekodowanie procentowe zostawia + bez zmian, bo w ścieżce plus jest po prostu plusem. Przy dekodowaniu query stringa lub danych formularza włącz Traktuj + jako spację, aby dostać hello world. Zostaw tę opcję wyłączoną dla ścieżek i wartości, w których dosłowny + ma znaczenie, np. numerów telefonów czy danych Base64. Prawdziwy plus w danych formularza jest wysyłany jako %2B, więc w obu przypadkach zostanie zdekodowany poprawnie.

Prywatność

Kodowanie i dekodowanie działa w całości w twojej przeglądarce. Nic, co wkleisz – także adresy, które mogą zawierać tokeny, identyfikatory sesji czy dane osobowe – nie jest wysyłane na serwer ani przechowywane.

Najczęściej zadawane pytania

Dlaczego dekodowanie kończy się błędem o niepoprawnym kodowaniu?

Po % muszą stać dokładnie dwie cyfry szesnastkowe, a powstałe bajty muszą tworzyć poprawny UTF-8. Ciągi takie jak 100%, %G1 czy ucięta sekwencja %E2%82 nie dają się wiarygodnie zdekodować, więc narzędzie zgłasza problem, zamiast tworzyć błędny tekst. Aby zapisać dosłowny znak procentu, zakoduj go jako %25.

Czym różni się %20 od +?

Oba mogą oznaczać spację, ale w różnych kontekstach. %20 jest poprawne w każdym miejscu adresu URL. + oznacza spację tylko w parametrach zakodowanych jak formularz; gdzie indziej to dosłowny znak plus.

Czy kodować cały adres URL w trybie składnika?

Tylko jeśli cały adres jest wartością wewnątrz innego adresu, np. w parametrze redirect=. Wtedy tryb składnika jest dokładnie tym, czego potrzebujesz: https://a.com/?x=1 staje się https%3A%2F%2Fa.com%2F%3Fx%3D1.

Dlaczego mój tekst jest zakodowany dwa razy?

Podwójne kodowanie występuje, gdy już zakodowany tekst zostaje zakodowany ponownie i %20 zamienia się w %2520. Zdekoduj raz, aby to sprawdzić, i pilnuj, by każda wartość była kodowana dopiero w chwili wstawiania jej do adresu.

Czy kodowanie URL ukrywa lub chroni dane?

Nie. Kodowanie procentowe jest w pełni odwracalne i nie zapewnia żadnego bezpieczeństwa. Wrażliwe wartości w adresach mogą trafić do historii przeglądarki i logów serwera, więc najlepiej w ogóle nie umieszczaj sekretów w adresach URL.