Kodowanie i dekodowanie URL
Zamień tekst w bezpieczny fragment adresu URL albo zdekoduj link pełen %20 i %E2%9C%93 z powrotem na czytelny tekst.
Dodaj ten kalkulator na swoją stronę
Skopiuj kod i wklej go do HTML-a swojej strony. To nic nie kosztuje – prosimy tylko o pozostawienie linku do źródła.
Co robi kodowanie procentowe
Adres URL może zawierać tylko ograniczony zestaw znaków ASCII (RFC 3986). Wszystko inne, czyli spacje, polskie litery i znaki mające w URL specjalne znaczenie, takie jak & i #, zapisuje się jako % i dwie cyfry szesnastkowe każdego bajtu UTF-8.
Koduj każdy fragment osobno: segmenty ścieżki i każdą wartość parametru. Zakodowanie gotowego adresu opcją dla wartości parametru (encodeURIComponent) zamienia :// i ? na %3A%2F%2F i %3F i psuje adres, a podwójne kodowanie zamienia % w %25, dlatego czasem zamiast spacji widać %2520.
Najczęstsze kody w kodowaniu procentowym
| Znak | Zakodowany | Znak | Zakodowany |
|---|---|---|---|
| (spacja) | %20 | ! | %21 |
| " | %22 | # | %23 |
| $ | %24 | % | %25 |
| & | %26 | ' | %27 |
| + | %2B | , | %2C |
| / | %2F | : | %3A |
| ; | %3B | = | %3D |
| ? | %3F | @ | %40 |
Najczęstsze pytania
Spacja to %20 czy +?
%20 działa w każdym miejscu adresu URL. + oznacza spację tylko w query stringach wysyłanych jako dane formularza HTML (application/x-www-form-urlencoded). Przy ich tworzeniu wybierz opcję „Dane formularza”, a przy dekodowaniu zaznacz „Traktuj + jako spację”.
Czym różni się encodeURI od encodeURIComponent?
encodeURI służy do całego adresu URL i zostawia bez zmian znaki takie jak : / ? & =. encodeURIComponent służy do jednego fragmentu, np. wartości parametru, i koduje także te znaki, więc wartość zawierająca & nie psuje adresu.
Dlaczego polskie litery zamieniają się w kilka kodów %XX?
Adresy URL są kodowane jako bajty UTF-8. Litera ą to dwa bajty (%C4%85), większość znaków japońskich to trzy, a emoji cztery.
Czy to, co wklejam, trafia na serwer?
Nie. To narzędzie działa w całości w twojej przeglądarce, z użyciem JavaScriptu i wbudowanego Web Crypto API. Nic, co wpiszesz, wkleisz lub otworzysz, nie jest wysyłane ani zapisywane.