URL kodér a dekodér

Procentově kódujte text pro URL a query stringy, dekódujte zakódované URL a rozložte libovolnou URL na části s dekódovanými parametry dotazu.

Běží v prohlížečiBez registraceNic se neodesílá

Zakódováno

Jak používat: URL kódování / dekódování

  1. Zvolte Kódovat nebo Dekódovat.
  2. Při kódování zvolte Komponenta pro jednu hodnotu parametru nebo segment cesty, Celá URL pro zachování struktury URL, nebo Data formuláře pro application/x-www-form-urlencoded.
  3. Vložte text. Výsledek se zobrazí okamžitě; chybné sekvence se hlásí i s pozicí.
  4. Vložte celou URL do parseru URL a uvidíte její host, cestu, fragment a každý parametr dotazu dekódovaný.

Co je kódování URL?

URL smí obsahovat jen omezenou sadu znaků ASCII (RFC 3986). Vše ostatní, včetně mezer, písmen s diakritikou a znaků se zvláštním významem jako &, ? a #, se zapisuje jako znak procenta následovaný dvěma šestnáctkovými číslicemi pro každý bajt UTF-8. Mezera se stane %20 a é se stane %C3%A9.

encodeURIComponent vs. encodeURI

FunkcePonechá beze změnyPoužití
encodeURIComponentA-Z a-z 0-9 - _ . ~Jedna hodnota parametru, segment cesty nebo název parametru
encodeURINavíc : / ? # [ ] @ ! $ & ' ( ) * + , ; =Celá URL, jejíž struktura musí zůstat zachována

Použití encodeURI na hodnotu parametru je klasická chyba: & uvnitř hodnoty se nezakóduje, takže parametr rozdělí na dva. Režim Komponenta v tomto nástroji kóduje také ! ' ( ) * pro striktní shodu s RFC 3986.

%20, nebo + pro mezery?

V cestách musí být mezera %20. V odesílání HTML formulářů (application/x-www-form-urlencoded) a v mnoha query stringech se mezera zapisuje jako +. Při dekódování zapněte Považovat + za mezeru pro data formulářů a vypněte to, když záleží na doslovném znaku plus, například v jane+test@example.com.

Časté dotazy

Proč při dekódování dostávám „Chybná sekvence“?
Za % musí následovat přesně dvě šestnáctkové číslice. Doslovný znak procenta, jako v „sleva 50%“, měl být zakódován jako %25. Chyba ukazuje pozici vadné sekvence.
Co znamená „Neplatná sekvence bajtů UTF-8“?
Bajty nebyly zakódovány jako UTF-8, často proto, že text vytvořil starší systém používající Latin-1 (například %E9 pro é místo %C3%A9), nebo byl řetězec useknut uprostřed znaku.
Mám kódovat celou URL, nebo jen parametry?
Kódujte každý název a hodnotu parametru zvlášť v režimu komponenty a pak je spojte pomocí = a &. Zakódování celé URL v režimu komponenty by zakódovalo i :// a URL rozbilo.
Je dvojité kódování problém?
Ano. Zakódováním již zakódovaného řetězce se z %20 stane %2520. Pokud vidíte %25 následované šestnáctkovými číslicemi, hodnota byla pravděpodobně zakódována dvakrát. Dekódujte ji dvakrát a získáte originál.

Související nástroje