Darmowy konwerter

Koder URL / Dekoder

Koduj i dekoduj adresy URL i komponenty URI natychmiast w przeglądarce. Bezpłatne, prywatne i nie wymaga przesyłania.

Lub

O tym narzędziu

Kodowanie URL (formalnie kodowanie procentowe, zdefiniowane w RFC 3986) tłumaczy znaki, które mają specjalne znaczenie w adresach URL – spacje, ukośniki, ampersandy, znaki krzyżyka – na bezpieczną formę przy użyciu znaków procentów, po których następują cyfry szesnastkowe. Znak spacji staje się%20 (lub + w kontekstach zakodowanych w formie), znak ampersand staje się%26 i tak dalej. Bez tego kodowania znaki specjalne byłyby interpretowane jako składnia adresu URL, a nie jako dane dosłowne, co uszkadzałoby adres URL lub powodowało niezamierzone zachowanie.

Istnieją dwa powiązane, ale różne kodowania. Standardowe kodowanie komponentu adresu URL wykorzystuje znaki ucieczki % dla wszystkiego poza niezarezerwowanym zestawem znaków: A-Z, a-z, 0-9, łącznik, podkreślenie, kropka, tylda. Wariant zakodowany w formularzu (application/x-www-form-urlencoded) dodatkowo traktuje spacje jako znaki plus i stosuje inne zasady dla niektórych innych znaków. JavaScript encodeURIComponent używa ścisłego kodowania komponentowego; encodeURI używa bardziej liberalnej formy, która zachowuje znaki struktury adresu URL.

To narzędzie oferuje zarówno kodowanie, jak i dekodowanie. Tryb kodowania zawija każdy znak wymagający zmiany znaczenia w formacie %HH; tryb dekodowania odwraca transformację. Obydwa działają w całości w przeglądarce, korzystając z wbudowanych funkcji URL JavaScript, więc żadne dane nie są nigdzie wysyłane.

Po co kodować lub dekodować adresy URL

Za każdym razem, gdy adres URL zawiera dane — parametry ciągu zapytania, segmenty ścieżki zawierające dane wprowadzone przez użytkownika, cele przekierowań — wymagane jest odpowiednie kodowanie. Niepowodzenie w kodowaniu powoduje, że adresy URL psują się, gdy pojawiają się znaki specjalne, wyciekają granice parametrów do ciągów zapytań (zamieniając &x=1 w oddzielny parametr) lub są blokowane przez serwery internetowe jako źle sformułowane żądania.

Dekodowanie jest odwrotnością: wyodrębnianie oryginalnych danych z zakodowanego adresu URL. Paski adresu przeglądarki często pokazują adresy URL w formie zakodowanej; dekodowanie ujawnia, co było rzeczywiście zamierzone. Rejestrowanie, debugowanie i analiza bezpieczeństwa korzystają z zdekodowanych adresów URL, które pokazują oryginalne parametry i ścieżki.

Jak używać

Wklej ciąg, wybierz kierunek.

  1. Wybierz kodowanie lub dekodowanie: Encode zawija niebezpieczne znaki w formacie %HH. Dekodowanie odwraca zmianę %HH z powrotem na znaki dosłowne.
  2. Dodaj tekst wejściowy: Wklej ciąg, który chcesz zakodować lub zdekodować. W przypadku kodowania jest to zazwyczaj wartość literału ze spacjami, znakami specjalnymi lub treścią inną niż ASCII. Do dekodowania jest to adres URL lub komponent adresu URL zawierający znaki specjalne %HH.
  3. Konwertuj: Narzędzie stosuje encodeURIComponent lub decodeURIComponent. Zakodowane dane wyjściowe można bezpiecznie osadzić w adresie URL; zdekodowany wynik jest oryginalną wartością literału.
  4. Skopiuj lub pobierz: Wykorzystaj wynik, gdziekolwiek go potrzebujesz. Zakodowane wartości pasują do adresów URL; zdekodowane wartości ujawniają oryginalne dane.

Typowe przypadki użycia

Szczegóły techniczne

encodeURIComponent koduje każdy znak spoza niezarezerwowanego zestawu [A-Za-z0-9-_.~]. Spacje stają się%20, znaki plus stają się%2B, znaki równości stają się%3D i tak dalej. Znaki spoza ASCII są najpierw kodowane w UTF-8, a następnie każdy bajt jest znakowany %.

encodeURI jest bardziej liberalny i jest przeznaczony dla pełnych adresów URL, a nie komponentów. Nie ucieka przed /, ?, &, =, # i kilkoma innymi, ponieważ te znaki mają znaczenie w składni adresu URL. Jeśli chodzi o osadzanie danych użytkownika w adresie URL, encodeURIComponent jest prawie zawsze właściwym wyborem.

decodeURIComponent odwraca %-ucieczki, sprawdzając, czy każda ucieczka jest poprawnie uformowana i czy powstałe bajty tworzą prawidłowy kod UTF-8. Zniekształcone dane wejściowe zamiast produkować śmieci, zgłaszają błąd.

Najlepsze praktyki

Często zadawane pytania

Jakie znaki wymagają kodowania adresu URL?
Znaki zastrzeżone (&, =, ?, #, /, :, @) i znaki niebezpieczne (spacje, <, >, {, }, |, ^, ~, [, ], `) muszą być zakodowane. Znaki alfanumeryczne i -_.~ są bezpieczne i nie wymagają kodowania.
Jaka jest różnica między encodeURI i encodeURIComponent?
encodeURI koduje pełny adres URL, ale zachowuje znaki zastrzeżone (://?#). encodeURIComponent koduje wszystko z wyjątkiem -_.!~*'() — użyj go do wartości parametrów zapytania. To narzędzie oferuje oba tryby.
W jaki sposób kodowane są spacje w adresach URL?
Spacje mogą być kodowane jako%20 (standardowe kodowanie procentowe) lub + (kodowanie w formie). %20 jest poprawne dla ścieżek URL, natomiast + jest używane w ciągach zapytań z formularzy HTML. To narzędzie domyślnie używa %20.
Czy mogę kodować znaki Unicode?
Tak. Znaki Unicode są najpierw kodowane w bajtach UTF-8, a następnie każdy bajt jest kodowany procentowo. Na przykład „日” zmienia się na %E6%97%A5 (trzy bajty UTF-8, każdy zakodowany procentowo).
Czy powinienem używać encodeURI czy encodeURIComponent?
Prawie zawsze encodeURIComponent. Używaj encodeURI tylko wtedy, gdy masz pełny adres URL i chcesz zachować jego strukturę — ​​zazwyczaj jest to rzadkie, ponieważ i tak budujesz adresy URL z komponentów.
Czy moje dane są przesyłane na serwer?
Nie. Kodowanie i dekodowanie adresów URL odbywa się całkowicie w przeglądarce.
Czy obsługuje emoji Unicode?
Tak. Emoji to wielobajtowe sekwencje UTF-8; koder tworzy łańcuch % bajtów, które uległy zmianie, a dekodery prawidłowo składają je z powrotem do oryginalnego emoji.
Co się stanie, jeśli moje dane wejściowe zawierają ciągi wyglądające na %HH, które w rzeczywistości nie są zakodowane?
Kodowanie zamienia każdy% na%25, a następnie ponownie stosuje ucieczkę dla reszty. Dekodowanie ścisłych danych wejściowych powoduje błędy w przypadku zniekształconych znaków ucieczki; niejednoznacznie wyglądające ciągi mogą zostać nieprawidłowo zdekodowane.