Zdarma převodník

URL Encoder / Dekodér

Kódujte a dekódujte adresy URL a komponenty URI okamžitě ve vašem prohlížeči. Zdarma, soukromé a bez nutnosti nahrávání.

Nebo

O tomto nástroji

Kódování URL (formálně kódování procent, definované v RFC 3986) převádí znaky, které mají v adresách URL zvláštní význam – mezery, lomítka, ampersandy, značky hash – do bezpečné formy pomocí znaků procent následovaných hexadecimálními číslicemi. Znak mezery se změní na %20 (nebo + v kontextu s kódováním tvaru), ampersand na %26 a tak dále. Bez tohoto kódování by byly speciální znaky interpretovány jako syntaxe adresy URL spíše než jako doslovná data, která by porušila adresu URL nebo způsobila nezamýšlené chování.

Existují dvě související, ale odlišná kódování. Standardní kódování komponenty URL používá %-escapes pro vše mimo nevyhrazenou znakovou sadu: A-Z, a-z, 0-9, pomlčka, podtržítko, tečka, vlnovka. Varianta s kódováním formuláře (application/x-www-form-urlencoded) navíc považuje mezery za znaménka plus a pro některé další znaky používá jiná pravidla. EncodeURIComponent JavaScriptu používá přísné kódování komponenty; encodeURI používá tolerantnější formu, která zachovává znaky struktury URL.

Tento nástroj nabízí jak kódování, tak dekódování. Režim kódování zabalí každý znak, který vyžaduje escapování, do formátu %HH; dekódovací režim obrátí transformaci. Oba běží zcela ve vašem prohlížeči pomocí vestavěných funkcí JavaScript URL, takže se nikam neodesílají žádná data.

Proč kódovat nebo dekódovat adresy URL

V URL jsou zahrnuta data kdykoli – parametry řetězce dotazu, segmenty cesty obsahující vstup uživatele, cíle přesměrování – je vyžadováno správné kódování. Selhání při kódování vytváří adresy URL, které se přeruší, když se objeví speciální znaky, unikají hranice parametrů do řetězců dotazů (přeměna &x=1 na samostatný parametr) nebo jsou blokovány webovými servery jako chybně naformátované požadavky.

Dekódování je obrácené: extrahování původních dat ze zakódované adresy URL. Adresní řádky prohlížeče často zobrazují adresy URL v zakódované podobě; dekódování odhalí, co bylo skutečně zamýšleno. Protokolování, ladění a bezpečnostní analýza těží z dekódovaných adres URL, které zobrazují původní parametry a cesty.

Jak používat

Vložte řetězec, vyberte směr.

  1. Vyberte kódování nebo dekódování: Kódování zalamuje nebezpečné znaky do formátu %HH. Dekódování obrátí %HH escape zpět na doslovné znaky.
  2. Přidejte vstupní text: Vložte řetězec, který chcete zakódovat nebo dekódovat. Pro kódování je to obvykle doslovná hodnota s mezerami, speciálními znaky nebo obsahem bez ASCII. Pro dekódování se jedná o URL nebo komponentu URL obsahující %HH escape.
  3. Převést: Nástroj aplikuje encodeURIComponent nebo decodeURIComponent. Kódovaný výstup lze bezpečně vložit do adresy URL; dekódovaný výstup je původní doslovná hodnota.
  4. Zkopírujte nebo stáhněte: Použijte výsledek, kdekoli ho potřebujete. Zakódované hodnoty se vejdou do URL; dekódované hodnoty odhalují původní data.

Běžné případy použití

Technické detaily

encodeURIComponent zakóduje každý znak mimo nerezervovanou sadu [A-Za-z0-9-_.~]. Mezery se stanou %20, znaménka plus %2B, znaménka rovná se %3D a tak dále. Znaky mimo ASCII jsou nejprve zakódovány v UTF-8 a poté je každý bajt %-escaped.

encodeURI je tolerantnější a je určen spíše pro úplné adresy URL než pro komponenty. Neuvádí /, ?, &, =, # a několik dalších, protože tyto znaky mají význam syntaxe adresy URL. Pro vkládání uživatelských dat do adresy URL je téměř vždy správnou volbou encodeURIComponent.

decodeURIComponent obrací %-escapes a ověřuje, že každý escape má správný formát a že výsledné bajty tvoří platný UTF-8. Špatně tvarovaný vstup vyvolá chybu, místo aby produkoval odpad.

Nejlepší postupy

Často kladené dotazy

Jaké znaky potřebují kódování URL?
Vyhrazené znaky (&, =, ?, #, /, :, @) a nebezpečné znaky (mezery, <, >, {, }, |, ^, ~, [, ], `) musí být kódovány. Alfanumerické znaky a -_.~ jsou bezpečné a nevyžadují kódování.
Jaký je rozdíl mezi encodeURI a encodeURIComponent?
encodeURI zakóduje celou adresu URL, ale zachová vyhrazené znaky (://?#). encodeURIComponent kóduje vše kromě -_.!~*'() — použijte jej pro hodnoty parametrů dotazu. Tento nástroj nabízí oba režimy.
Jak jsou v adresách URL kódovány mezery?
Mezery lze zakódovat jako %20 (standardní kódování procent) nebo + (kódování formuláře). %20 je správné pro cesty URL, zatímco + se používá v řetězcích dotazů z formulářů HTML. Tento nástroj ve výchozím nastavení používá %20.
Mohu kódovat znaky Unicode?
Ano. Znaky Unicode jsou nejprve zakódovány do UTF-8 bajtů, poté je každý bajt zakódován procentem. Například '日' se změní na %E6%97%A5 (tři bajty UTF-8, každé s kódováním procent).
Mám použít encodeURI nebo encodeURIComponent?
Téměř vždy encodeURIComponent. EncodeURI použijte pouze v případě, že máte úplnou adresu URL a chcete zachovat její strukturu – obvykle vzácné, protože adresy URL stejně vytváříte z komponent.
Jsou moje data nahrána na server?
Ne. Kódování a dekódování URL probíhá výhradně ve vašem prohlížeči.
Zvládá emotikony Unicode?
Ano. Emoji jsou vícebajtové sekvence UTF-8; kodér vytvoří řetězec %-uniknutých bajtů, které dekodéry správně sestaví zpět do původního emoji.
Co když můj vstup obsahuje řetězce vypadající jako %HH, které ve skutečnosti nejsou zakódované?
Kódování změní každé % na %25 a poté znovu použije escapování na zbytek. Dekódování přísného vstupu způsobí chyby při chybně vytvořených escape; nejednoznačně vypadající řetězce mohou nesprávně dekódovat.