Zakodowane Procentowo

Zdekodowany Tekst

Czym jest Dekoder URL?

Wklej ciąg zakodowany procentowo do lewego panelu, a prawy panel pokaże oryginał. Pod maską działa decodeURIComponent, który przechodzi przez każdą sekwencję %XX w wejściu, traktuje te pary szesnastkowe jako bajty UTF-8 i odbudowuje oryginalne znaki. Więc %20 staje się spacją, %26 staje się &, %E2%9C%85 staje się znakiem zaznaczenia. Odwrotny kierunek mieszka w Koderze URL.

Dlaczego dekodowanie jest podchwytliwe? Bo nie każdy % w realnym świecie jest częścią poprawnej sekwencji zakodowanej procentowo. Samotny % po którym następują znaki nieszesnastkowe (%G1, % na końcu ciągu) jest błędny i dekoder rzuci URIError: URI malformed. Ta strona to przechwytuje i pokazuje przyjazny komunikat "Nieprawidłowe kodowanie" zamiast stack trace, więc uszkodzony wklej nie psuje strony. Dokładne reguły tego, co liczy się jako poprawne, mieszkają w RFC 3986 §2.1 i Standardzie URL WHATWG.

Uważaj na podwójne kodowanie. Jeśli zdekodujesz ciąg, a wyjście NADAL zawiera znaki % (np. dostałeś Ava%2520Chen zamiast Ava Chen), wartość została zakodowana dwukrotnie gdzieś w łańcuchu — zwykle proxy lub framework, który automatycznie zakodował już zakodowaną wartość. Zdekodowanie ponownie zaprowadzi cię do końca drogi. Notatki Wikipedii o podwójnym kodowaniu mają dobre wyjaśnienie, jak to się dzieje. Wszystko działa w twojej przeglądarce. Bez wysyłania, bez serwera, bez logów.

Jak Używać Dekodera URL

Trzy kroki. Strona aktualizuje się, gdy piszesz — bez przycisku Konwertuj.

1

Wklej swój zakodowany ciąg lub kliknij Przykład

Wrzuć ciąg zakodowany procentowo do lewego panelu. Kliknij Przykład, aby wczytać realistyczny przypadek. Przykładowe wejście:

Ava%20Chen%20%26%20friends%3F%20customer%40shop.com%20%20100%25%20off!

Błędne wejście (samotny <code>%</code>, nieprawidłowa para szesnastkowa jak <code>%G1</code>) wypłynie jako komunikat "Nieprawidłowe kodowanie" w panelu wyjścia — patrz <a href="https://tc39.es/ecma262/#sec-decodeuricomponent-encodeduricomponent" target="_blank" rel="noopener">specyfikacja ECMAScript dla decodeURIComponent</a>, aby poznać dokładne reguły porażki.

2

Przeczytaj zdekodowane wyjście

Prawy panel pokazuje zdekodowany tekst. %20 staje się spacją, %26 staje się &, %3F staje się ?, %40 staje się @, %25 staje się %. Aktualizuje się, gdy piszesz.

3

Kopiuj lub pobierz

Kliknij Kopiuj, aby umieścić zdekodowany tekst w schowku, lub Pobierz, aby zapisać go jako plik .txt. Użyj Wyczyść w panelu wejścia, aby zacząć od nowa. Aby pójść w drugą stronę, skocz do Kodera URL.

Kiedy Naprawdę Tego Użyjesz

Czytanie tego, co naprawdę jest w parametrze zapytania

URL jak ?customer=Ava%20Chen&tag%5B0%5D=red trudno przejrzeć z procentowymi kodami wciąż na miejscu. Wklej tutaj jedną wartość, a dostaniesz Ava Chen albo tag[0], co jasno pokazuje, czy parametr to to, czego się spodziewałeś. Aby rozłożyć cały URL, Parser URL robi parametry zapytania automatycznie.

Debugowanie podwójnie zakodowanych wartości

Wklejasz Ava%2520Chen, dekodujesz raz, dostajesz Ava%20Chen. Ta dodatkowa warstwa to dowód — gdzieś proxy, framework lub biblioteka zakodowały wartość po raz drugi. Zdekoduj ponownie, aby otrzymać prawdziwy ciąg. Specyfikacje OAuth są częstym sprawcą, bo wartości redirect_uri często przechodzą przez warstwy, z których każda "uprzejmie" je ponownie koduje.

Inspekcja URL webhooków i analityki z logów

Gdy coś zawiedzie na produkcji, URL w logu dostępu jest zwykle w pełni zakodowany — %7B%22event%22%3A%22signup%22%7D zamiast JSON-a, który webhook faktycznie wysłał. Wklej go tutaj, a dostaniesz {"event":"signup"}, co już da się przeczytać.

Dekodowanie magic linku lub URL resetu hasła

Gdy klient taki jak Marco Rivera mówi "link resetujący jest zepsuty", link zawiera token, e-mail i cel przekierowania — wszystko zakodowane procentowo. Zdekodowanie podejrzanego parametru pokazuje, czy e-mail jest właściwym adresem, czy token przetrwał obróbkę klienta poczty, czy redirect URI nie został obcięty.

Częste Pytania

Co dzieje się przy błędnym wejściu jak samotny % lub %G1?

Natywny decodeURIComponent rzuca URIError: URI malformed przy sekwencji, która nie jest poprawną parą szesnastkową %XX. Ta strona to przechwytuje i wpisuje "Nieprawidłowe kodowanie: ..." do panelu wyjścia zamiast się wywalać. Najczęstsze przyczyny to zabłąkany dosłowny %, który powinien być %25, lub kopiuj-wklej, który zgubił końcową cyfrę szesnastkową.

Skąd mam wiedzieć, że moje wejście jest podwójnie zakodowane?

Zdekoduj raz. Jeśli wyjście nadal ma znaki % (zwłaszcza %20, %2F, %3A) i miało być zwykłym tekstem, było zakodowane dwukrotnie. Zdekoduj wyjście pierwszego dekodowania. Trzy rundy są rzadkie, ale możliwe — zwykle oznaczają łańcuch trzech różnych usług, z których każda zakodowała tę samą wartość.

A znaki + — czy powinny dekodować się do spacji?

Nie z decodeURIComponent — zostawia + w spokoju. Konwencja +-jako-spacja należy do application/x-www-form-urlencoded (przesłania formularzy HTML), nie do ogólnego kodowania procentowego URL. Jeśli twoje wejście pochodzi z ciała formularza i ma + dla spacji, najpierw uruchom .replace(/\+/g, "%20"), potem zdekoduj. Specyfikacja WHATWG dla application/x-www-form-urlencoded opisuje tę dwusmakową sytuację.

Czy poprawnie obsługuje round-trip Unicode i emoji?

Tak. Zakodowane procentowo wielobajtowe sekwencje UTF-8 (np. %E2%9C%85 dla znaku zaznaczenia, %F0%9F%9A%80 dla rakiety) dekodują się prosto do oryginalnych znaków. Jedyny sposób, w jaki to się nie udaje, to gdy koder użył zestawu znaków innego niż UTF-8, czego nowoczesne systemy nie robią.

Czy wejście, które tu wklejam, jest gdzieś wysyłane?

Nie. Dekodowanie działa w całości w twojej przeglądarce. Brak wywołań sieciowych, brak logów serwera, nic nie opuszcza twojej maszyny. Tokeny, e-maile, podpisane URL-e — wszystko bezpieczne do wklejenia.

Jak duży ciąg mogę tu zdekodować?

Jest limit 256 KB na wejście. Jeśli masz setki KB tekstu zakodowanego procentowo, prawie na pewno masz payload, który powinien być dekodowany po stronie serwera, a nie wklejany w narzędzie — zakodowane payloady tej wielkości zwykle wskazują na nadużycie kodowania URL do zadania, które prosi o base64 lub ciało żądania.

Inne Narzędzia URL i Kodowania

Dekodowanie to jedna operacja. Oto co naturalnie się z nią łączy: