§

Wprowadź tekst do dekodowania:

Wprowadź tekst zakodowany w formacie URL, który chcesz zdekodować. Narzędzie przekonwertuje znaki zakodowane procentowo z powrotem do ich oryginalnej formy.
§

Output

decoded

Dekodowanie URL-i to codzienna praca w polskim stosie webowym: rozplątywanie parametrów `utm_` przed wrzuceniem ich do BigQuery, analizowanie payloadów webhooków z Allegro i OLX, czytanie wartości `state` przeskakującej przez Profil Zaufany w przepływie OAuth 2.0, czy audyt złośliwego payloadu zatrzymanego przez WAF na froncie chmurowym OChK. Administratorzy triagujący logi Apache i NGINX w bankach takich jak Pekao często wklejają podejrzane query stringi do dekodera, zanim odeślą je do SIEM-u. Ten dekoder po stronie klienta jest zgodny z RFC 3986 i nigdy nie wysyła wejścia, co ma znaczenie, gdy sam adres URL jest częścią incydentu zgłaszanego do UODO.

Opcje zaawansowane

Konwertuj + na spacje

Po włączeniu znaki + zostaną przekonwertowane na spacje. Jest to przydatne przy dekodowaniu parametrów zapytania.

Tryb na żywo

Po włączeniu tekst będzie dekodowany automatycznie podczas pisania.

Te opcje pomagają kontrolować sposób dekodowania zakodowanych znaków w adresach URL.

Czym jest dekodowanie URL?

Dekodowanie URL odwraca kodowanie procentowe: odczytuje sekwencje ucieczki %XX w zakodowanym URL-u i zamienia je z powrotem na odpowiadające im znaki. W ten sposób możesz odtworzyć czytelny ciąg zapytania, wartość formularza lub segment ścieżki z URL-a przekazanego Ci przez przeglądarkę, API lub linię dziennika.

Jak działa dekodowanie URL?

Dekodowanie URL przebiega według określonego procesu konwersji sekwencji zakodowanych procentowo z powrotem na ich pierwotne znaki:

  1. Ciąg wejściowy jest skanowany w poszukiwaniu sekwencji ucieczki zakodowanych procentowo (%XX)
  2. Każde %XX jest konwertowane z dwóch cyfr szesnastkowych z powrotem na pierwotną wartość bajtu
  3. Kolejne zdekodowane bajty są składane z powrotem w znaki UTF-8 (sekwencja wielobajtowa staje się jednym znakiem)
  4. W kontekście ciągu zapytania + jest dekodowane na spację (application/x-www-form-urlencoded), podczas gdy %2B pozostaje dosłownym +
  5. Znaki niezarezerwowane i już zdekodowany tekst przechodzą bez zmian

Dlaczego warto używać dekodera URL?

  • Czytelny wynik: zamień %20, %40 i %3D z powrotem na spację, @ i =, aby odczytać, co URL naprawdę mówi
  • Tekst wielojęzyczny: odbuduj znaki akcentowane i spoza ASCII z ich sekwencji bajtów UTF-8, aby %C3%A9 znów było czytane jako é
  • Debugowanie: sprawdź rzeczywiste wartości w ciągu zapytania, przekierowaniu OAuth lub ładunku webhooka, zanim zaczniesz na nich działać
  • Zgodność ze standardami: dekoduj zgodnie z RFC 3986 — tymi samymi regułami, co przeglądarki i serwery — aby zobaczyć dokładnie to, co one widzą

Jakie są typowe zastosowania dekodowania URL?

Dekodowanie URL jest niezbędne w wielu scenariuszach tworzenia stron internetowych:

  • Wysyłanie formularzy: odczytywanie oryginalnych wartości pól z danych GET i POST zakodowanych jako application/x-www-form-urlencoded
  • Tworzenie API: rozpakowywanie procentowo zakodowanych parametrów ścieżki i zapytania przychodzących do punktu końcowego API
  • Systemy plików: odtwarzanie ścieżek i nazw plików, które zostały procentowo zakodowane, aby przemieszczać się wewnątrz URL-a
  • Debugowanie linków: dekodowanie udostępnionych lub zarejestrowanych URL-i, aby zobaczyć znaki specjalne i tekst wielojęzyczny, które przenoszą

Jak wygląda przykład dekodowania URL?

Oto kilka typowych przykładów dekodowania URL: %20 (lub +) staje się spacją, %40 staje się @, %23 staje się #, %26 staje się &, a %3D staje się =. Sekwencja UTF-8, taka jak %C3%A9, staje się znakiem międzynarodowym é.

Czym jest kodowanie procentowe?

Kodowanie procentowe to mechanizm zdefiniowany w RFC 3986 §2.1 do reprezentowania znaków, które są niebezpieczne lub zarezerwowane wewnątrz URI. Reguła jest mechaniczna: każdy bajt, który nie może wystąpić dosłownie, jest zapisywany jako znak procentu poprzedzający dwie cyfry szesnastkowe — postać %XX —, gdzie XX jest wartością bajtu. Znaki spoza ASCII, takie jak é, są najpierw kodowane jako ich sekwencja bajtów UTF-8, a następnie każdy bajt jest kodowany procentowo oddzielnie. Programiści spotykają się z tym niemal codziennie: w łańcuchach zapytań, przesyłaniu formularzy, adresach URL zwrotnych OAuth, parametrach ścieżek REST API i wszędzie tam, gdzie URL musi przenieść znaki interpunkcyjne, spacje lub znaki spoza zbioru niezarezerwowanego A–Z a–z 0–9 - _ . ~.

Jak właściwie działa dekodowanie %C3%A9 do é?

Weź zakodowany łańcuch zapytania ?q=caf%C3%A9&lang=fr. Dekodowanie daje ?q=café&lang=fr. Oto przejście bajt po bajcie:

  • Wejście: ?q=caf%C3%A9&lang=fr
  • Wyjście: ?q=café&lang=fr
  1. %C3 → bajt 0xC3 (binarnie 11000011) — bajt prowadzący 2-bajtowej sekwencji UTF-8.
  2. %A9 → bajt 0xA9 (binarnie 10101001) — bajt kontynuacji. Razem C3 A9 to kodowanie UTF-8 punktu U+00E9, czyli é.
  3. Znaki ?, = i & pozostają nietknięte, ponieważ są strukturalne — wyznaczają granice zapytania i par klucz/wartość. Literał caf również przechodzi bez zmian, ponieważ małe litery ASCII należą do zbioru niezarezerwowanego.

Czym różni się decodeURIComponent od decodeURI?

JavaScript udostępnia dwa wbudowane dekodery, a mylenie ich to jeden z najczęstszych błędów przy obsłudze URL:

  • decodeURIComponent(str) dekoduje każdą sekwencję zakodowaną procentowo, w tym znaki zarezerwowane, takie jak &, =, ?, / i #. Stosuj go do pojedynczych wartości łańcucha zapytania lub segmentów ścieżki — nigdy do całego URL-a.
  • decodeURI(str) jest świadomie konserwatywny: pomija znaki zarezerwowane. Podanie mu %26 zwraca dosłowny ciąg %26, a nie &. Jest przeznaczony do całych URI, w których struktura ma przetrwać podróż tam i z powrotem.

Zasada praktyczna: jeśli ciąg jest fragmentem URL (pojedynczy parametr, fragment, zakodowana nazwa pliku), sięgnij po decodeURIComponent. To narzędzie zachowuje się jak decodeURIComponent — każda sekwencja %XX w Twoim wejściu jest dekodowana, w tym znaki zarezerwowane.

Dekodowanie URL to sposób na odczytanie, co naprawdę zawiera adres. Wklej zakodowany ciąg powyżej, a każda sekwencja %XX zamieni się w swój znak bezpośrednio w przeglądarce — możesz debugować parametr zapytania, sprawdzić przekierowanie OAuth lub odtworzyć nazwę pliku z akcentem bez wysyłania czegokolwiek na serwer.