Dekodowanie URL (dekodowanie procentowe) jest odwrotnością kodowania URL: konwertuje sekwencje zakodowane procentowo z powrotem do ich oryginalnych znaków. Każde wystąpienie znaku procentu, po którym następują dwie cyfry szesnastkowe (%XX), jest zastępowane bajtem reprezentowanym przez XX. Wiele kolejnych zakodowanych bajtów jest rekombinowanych w celu odtworzenia oryginalnego znaku UTF-8.
Dekodowanie URL jest codziennym zadaniem dla programistów pracujących z API, web scrapingiem, analizą logów i przepływami uwierzytelniania. Zakodowane URL-e są czytelne dla maszyn, ale nieprzejrzyste dla ludzi — ich dekodowanie natychmiast ujawnia rzeczywiste ścieżki, zapytania wyszukiwania, cele przekierowań i wartości parametrów, które w innym przypadku wymagałyby mentalnej konwersji hex-na-znak.
Dlaczego warto używać tego narzędzia?
Szybko zrozum dowolny procentowo zakodowany URL lub ciąg zapytania — bez konsoli przeglądarki, nic nie jest wysyłane na serwer.
⚡
Natychmiastowe dekodowanie
Wklej dowolny zakodowany URL lub parametr i natychmiast zobacz wersję czytelną dla człowieka. Świetne do debugowania żądań API i plików logów.
🛡️
Odzyskiwanie błędów
Wraca do legacy unescape() dla danych wejściowych zawierających staroszkolne znaki Latin-1 zakodowane procentowo, które nie powiodłyby się z decodeURIComponent.
🔒
Tylko po stronie klienta
Całe dekodowanie działa lokalnie w twojej przeglądarce. Tokeny, hasła i prywatne parametry zapytania nigdy nie opuszczają twojego urządzenia.
🔁
Pełna obsługa URL
Dekoduj pełne URL-e lub pojedyncze wartości parametrów. Narzędzie obsługuje zarówno standardowe spacje %20, jak i zachowuje znaki + jako dosłowne znaki plus.
Jak korzystać z tego dekodera URL online
Bez konta, bez instalacji. Wklej zakodowany procentowo ciąg w pole wejściowe, a zdekodowany wynik pojawi się natychmiast. Wszystko działa w Twojej przeglądarce — dane nigdy nie opuszczają Twojego urządzenia.
1
Wklej zakodowany adres URL lub ciąg
Skopiuj dowolny zakodowany procentowo ciąg — adres URL z paska adresu, parametr zapytania z logów serwera, odpowiedź API lub cel przekierowania — i wklej go w pole wejściowe.
2
Automatyczne wykrywanie formatu
Dekoder automatycznie obsługuje zarówno kodowanie procentowe %XX, jak i + jako spację (application/x-www-form-urlencoded). Nie ma potrzeby ręcznego określania formatu kodowania.
3
Sprawdź zdekodowane wyjście
Czytelny tekst pojawia się natychmiast. Jeśli dane wejściowe zawierały zagnieżdżone kodowanie (podwójnie zakodowane ciągi), dekoder rozwiązuje jedną warstwę na raz. Błąd pojawia się w przypadku zniekształconych sekwencji %XX.
4
Skopiuj lub ponownie zakoduj
Kliknij Kopiuj, aby pobrać zdekodowany ciąg. Potrzebujesz ponownie go zakodować z innymi ustawieniami? Przejdź do narzędzia Koder URL jednym kliknięciem.
Jak działa dekodowanie
Dekoder skanuje dane wejściowe w poszukiwaniu sekwencji %, konwertuje każdą grupę dwóch cyfr szesnastkowych na wartość bajtu, grupuje kolejne sekwencje bajtów i interpretuje je jako UTF-8, aby uzyskać końcowe znaki Unicode.
Szybka referencja dla najczęściej spotykanych sekwencji procentowo zakodowanych:
Zakodowany
Znak
Gdzie to zobaczysz
%20
space
path segments, query values
%2B
+
literal plus (not a space in query)
%2F
/
slash inside a path component
%3F
?
literal question mark in a value
%23
#
literal hash in a value
%26
&
literal ampersand in a value
%3D
=
literal equals sign in a value
%40
@
at sign in username / password
%3A
:
colon inside a path segment
%25
%
literal percent sign
%2C
,
comma in path or query
%5B
[
opening bracket
%5D
]
closing bracket
%7B
{
curly brace in template literals
%7D
}
curly brace in template literals
Typowe przypadki użycia
Debugowanie żądań API
Skopiuj URL z logów sieciowych DevTools przeglądarki i zdekoduj go, aby zobaczyć rzeczywiste wartości parametrów zapytania — szczególnie przydatne, gdy zautomatyzowane narzędzia lub biblioteki procentowo zakodowały parametry.
Czytanie plików logów
Logi dostępu serwera WWW i logi aplikacji przechowują URL-e w zakodowanej postaci. Zdekoduj je, aby znaleźć rzeczywiste żądane ścieżki, terminy wyszukiwania i wartości parametrów.
Sprawdzanie przekierowań
Wywołania zwrotne OAuth, przekierowania SSO i URL-e śledzenia linków często zawierają mocno zakodowane parametry redirect_uri lub next. Zdekoduj URL, aby śledzić zamierzony cel.
Parsowanie ładunków webhook
Ciała webhooków wysyłane jako application/x-www-form-urlencoded (Stripe, Twilio, GitHub) przychodzą jako procentowo zakodowane ciągi. Zdekoduj je, aby odczytać rzeczywiste wartości pól.
Wyodrębnianie zapytań wyszukiwania
URL-e analityczne i nagłówki referrer zawierają oryginalne zapytanie wyszukiwania użytkownika procentowo zakodowane w parametrze q=. Zdekoduj, aby wyświetlić lub przeanalizować rzeczywiste terminy wyszukiwania.
Inżynieria wsteczna URL-i
Podczas integracji z API stron trzecich lub scrapingu, napotkane URL-e często zawierają zakodowane segmenty ścieżki i parametry. Zdekoduj je, aby zrozumieć strukturę URL i odtworzyć żądania.
Częste pułapki
To są najczęstsze błędy podczas dekodowania procentowo zakodowanych ciągów:
✕
Mylenie + z %20
W danych application/x-www-form-urlencoded (przesyłanie formularzy HTML) + reprezentuje spację. Ale w surowej ścieżce URL lub wartości zakodowanej za pomocą encodeURIComponent + jest dosłownym znakiem plus. decodeURIComponent nie konwertuje + na spację — użyj URLSearchParams lub unquote_plus dla danych formularza.
✕
Podwójnie zakodowane ciągi
Jeśli ciąg był zakodowany dwukrotnie, jedno dekodowanie nadal pozostawia znaki procentu: %2520 dekoduje się do %20, a nie do spacji. Zdekoduj po raz drugi, aby uzyskać oryginalną wartość. Uważaj na to w logach, proxy i oprogramowaniu pośredniczącym, które ponownie koduje już zakodowane dane.
✕
Zniekształcone sekwencje procentowe
Samotny % lub % po którym następują znaki nieszesnastkowe (np. %GG lub % 2) jest nieprawidłowy i spowoduje URIError. Zawsze waliduj dane wejściowe lub opakuj dekodowanie w try/catch.
✕
Niezgodność kodowania (Latin-1 vs UTF-8)
Stare systemy (urlencode PHP, klasyczny ASP) kodowały znaki jako bajty Latin-1. Ciąg zakodowany jako Latin-1 może być niepoprawnie zdekodowany przez dekoder UTF-8. Jeśli widzisz zniekształcone znaki, wypróbuj ścieżkę legacy unescape() lub ustal oryginalne kodowanie.
Przykłady kodu
Jak dekodować ciągi URL w popularnych językach i środowiskach:
JavaScript (browser / Node.js)
// Decode a percent-encoded component
decodeURIComponent('hello%20world%20%26%20more') // → "hello world & more"
// Decode a full URL (leaves structure characters encoded)
decodeURI('https://example.com/path?q=hello%20world') // → "https://example.com/path?q=hello world"
// Parse a query string (handles + as space automatically)
const params = new URLSearchParams('q=hello+world&lang=en')
params.get('q') // → "hello world"
const url = new URL('https://example.com/search?q=hello%20world%20%26%20more')
url.searchParams.get('q') // → "hello world & more"
url.pathname // → "/search"
CLI (bash)
# Decode with Python one-liner
python3 -c "from urllib.parse import unquote; print(unquote('hello%20world'))"
# Decode with Node.js
node -e "console.log(decodeURIComponent('hello%20world%20%26'))"
Dekoder URL vs. alternatywy
Kilka narzędzi może dekodować zakodowane procentowo ciągi, ale różnią się pod względem czytelności, prywatności i wygody.
To narzędzie
Działające w przeglądarce, natychmiastowe, prywatne. Obsługuje kodowanie %XX, + jako spację, Unicode i zniekształcone sekwencje. Żadne dane nie są wysyłane na żaden serwer.
Pasek adresu przeglądarki
Przeglądarki dekodują adresy URL do wyświetlenia, ale nie zawsze całkowicie — niektóre zakodowane znaki pozostają widoczne w pasku adresu. Nieprzydatne do sprawdzania wartości poszczególnych parametrów.
DevTools / curl -v
DevTools przeglądarki i curl wyświetlają surowe i zdekodowane adresy URL w żądaniach sieciowych. Przydatne do debugowania, ale wymaga przełączania narzędzi i wiedzy o tym, gdzie szukać.
Często zadawane pytania
Jaka jest różnica między decodeURIComponent a decodeURI?
decodeURIComponent dekoduje wszystkie procentowo zakodowane sekwencje, w tym znaki zarezerwowane (%2F → /, %3F → ?, itd.). decodeURI dekoduje tylko sekwencje, które nie wygenerowałyby znaku o specjalnym znaczeniu w URL — pozostawia %2F, %3F, %23 i inne znaki strukturalne zakodowane. Użyj decodeURIComponent dla wartości parametrów; użyj decodeURI tylko wtedy, gdy masz kompletny URL i chcesz zachować jego strukturę.
Dlaczego widzę URIError: zniekształcony URI?
Ten błąd decodeURIComponent występuje, gdy dane wejściowe zawierają % nie poprzedzony dwoma prawidłowymi cyframi szesnastkowym, lub gdy wielobajtowa sekwencja UTF-8 jest niekompletna (np. %E2 bez następującego %82%AC). Usuń lub zescapuj samotne znaki procentu przed dekodowaniem.
Czy dekodowanie traktuje + jako spację?
Nie — decodeURIComponent traktuje + jako dosłowny znak plus, a nie spację. Konwencja + → spacja ma zastosowanie tylko do danych application/x-www-form-urlencoded (przesyłanie formularzy HTML). Do dekodowania danych zakodowanych w formularzu użyj URLSearchParams (przeglądarka/Node) lub urllib.parse.unquote_plus (Python).
Czy bezpieczne jest dekodowanie URL po stronie klienta?
Tak — dekodowanie URL to czysta transformacja bez żądań sieciowych. Wszystkie nowoczesne przeglądarki zawierają decodeURIComponent i decodeURI jako natywne funkcje. To narzędzie wykonuje dekodowanie całkowicie w twojej przeglądarce; żadne dane nie są wysyłane gdziekolwiek.
Jak zdekodować URL zakodowany wielokrotnie?
Dekoduj go wielokrotnie, aż wynik się ustabilizuje (nie są już rozwiązywane sekwencje %). Dzieje się tak, gdy już zakodowany URL przechodzi przez kolejny koder. Każde przejście dekodowania usuwa jedną warstwę kodowania.
Co reprezentuje %XX?
Dwa znaki po % to cyfry szesnastkowe reprezentujące pojedynczą wartość bajtu (00–FF). Dla znaków ASCII ten bajt to kod ASCII znaku: %41 = 65 = 'A'. Dla znaków innych niż ASCII wiele sekwencji %XX reprezentuje sekwencję bajtów UTF-8 znaku: znak euro to %E2%82%AC (trzy bajty: 0xE2, 0x82, 0xAC).
Jakiego kodowania używa przeglądarka podczas wysyłania formularzy HTML?
Formularze HTML z method=GET dołączają pola do URL za pomocą kodowania application/x-www-form-urlencoded, które zastępuje spacje znakiem + zamiast %20 i koduje procentowo inne znaki specjalne. Opcja + → spacja w narzędziu URL Decode obsługuje ten format. Formularze z method=POST i enctype=application/x-www-form-urlencoded używają tego samego schematu w treści żądania.
Czy istnieje limit rozmiaru dla dekodowania?
Brak limitu po stronie serwera — narzędzie działa w całości w Twojej przeglądarce. Praktyczne ograniczenia zależą od pamięci przeglądarki. W przypadku bardzo długich zakodowanych ciągów lub przetwarzania wsadowego użyj decodeURIComponent w skrypcie.