fixmint
CS

Kódování v URL: co ve skutečnosti znamenají %20, + a %2F

Autor: · · aktualizováno 8. listopadu 2026 · 5 min čtení

Procentuální kódování zapisuje znak, který URL nemůže bezpečně nést, jako znak procenta následovaný jeho bajtovou hodnotou v hexadecimální soustavě. Mezera se změní na %20, ampersand na %26 a lomítko na %2F. Kódování chrání strukturu odkazu, protože znaky jako & a = oddělují části řetězce dotazu.

Kódování a dekódování URLURL je plná kódů %20Vyzkoušet zdarma

Které znaky mohou zůstat beze změny

Standard URI (RFC 3986), na kterém jsou URL postavena, ponechává některé znaky beze změny: písmena A až Z a a až z, číslice a čtyři znaky - _ . ~. Ty se nikdy nemusí kódovat. Jiné znaky v URL mají svou funkci. Dvojtečka odděluje schéma od zbytku, lomítko odděluje části cesty, otazník začíná dotaz, křížek začíná fragment a & a = rozdělují dotaz na názvy a hodnoty. Znak s funkcí je nutné zakódovat, pokud ho myslíte jako data, a ne jako strukturu.

Proto může být stejný znak na jednom místě zakódován a na jiném ne. V hodnotě dotazu musí být ampersand %26, jinak se odkaz rozdělí na špatném místě. V cestě odkazu je to jen obyčejný znak.

Písmena mimo angličtinu

Písmena mimo základní angličtinu se kódují jako jejich bajty UTF-8 a každý bajt se zapíše jako procentuální kód. Písmeno é ve slově café tvoří dva bajty C3 a A9, takže se změní na %C3%A9 a celé slovo na caf%C3%A9.

Jednoduchý příklad ukazuje pravidla v praxi. Text a b&c=d/é, zakódovaný jako komponenta, se změní na a%20b%26c%3Dd%2F%C3%A9. Zakóduje se každý znak, který není bezpečné písmeno, číslice nebo značka: mezera, ampersand, rovnítko, lomítko i písmeno s diakritikou.

Komponenta, nebo celá URL

Existují dva druhy kódování a každý má svůj důvod. Kódování komponenty bere každý vyhrazený znak jako data. Použijte ho pro jednu hodnotu, například hledaný výraz nebo název souboru uvnitř odkazu. Zakódování „rock & roll“ jako hledaného výrazu dá rock%20%26%20roll, takže ampersand zůstane uvnitř hodnoty.

Kódování celé URL zachovává strukturu. Zakódování https://example.com/a b dá https://example.com/a%20b, lomítka i dvojtečka zůstanou beze změny. Použijte ho pro úplnou adresu, kterou je potřeba opravit, ne pro hodnotu, která patří dovnitř odkazu.

Nástroj Kódování a dekódování URL má proto nastavení Komponenta a Celá URL. Dekódování celé URL také ponechává zakódované strukturní znaky jako %26 a %3D, takže odkaz po dekódování stále funguje.

Plusy a data formulářů

Webové formuláře používají jinou konvenci. Když se formulář odesílá jako data formuláře, mezera se zapisuje jako +, ne jako %20. Skutečné znaménko plus se pak zapíše jako %2B. Fráze C++ tips se tedy v datech formuláře změní na C%2B%2B+tips a v prosté komponentě kódování na C%2B%2B%20tips.

Dekódování má stejný rozdíl. V řetězci dotazu + obvykle znamená mezeru. V cestě odkazu je + znaménko plus. Nástroj čte + jako mezeru jen tehdy, když je zaškrtnuté Použít + pro mezery (data formuláře), takže tuto volbu nechte vypnutou u cest a u hodnot, kde je plus skutečné.

Čtení dlouhého řetězce dotazu

Odkaz často nese své nastavení za otazníkem. Vezměte tento příklad:

https://shop.example/search?q=red%20shirt&size=M&tag=summer%2Bsale

Po dekódování znamená, že se hledá červená košile, velikost je M a štítek je summer+sale. %2B zůstane znaménkem plus, protože bylo zakódováno. Vložte odkaz do nástroje Kódování a dekódování URL a po dekódování vypíše každý název a hodnotu, takže se dlouhý odkaz čte snadno. Pokud chcete jen kratší adresu bez sledovacích parametrů, nejprve vyčistěte odkaz.

Dvojité kódování

Nejčastější chyba je zakódovat hodnotu dvakrát. Zakódování textu %20 znovu dá %2520, protože samotné znaménko procenta se zakóduje jako %25. Stránka pak v hodnotě hledá doslovné %20 a hledání nebo stránka nesedí. Dekódujte odkaz jednou, zkontrolujte výsledek a hodnotu kódujte jen tehdy, když to opravdu potřebujete.

Poškozené escape sekvence

Znak procenta musí být následován dvěma hexadecimálními číslicemi a číslice pro písmena s diakritikou musí tvořit platné UTF-8. Odkaz, který byl useknutý, nebo náhodné procento vložené do textu, může zanechat poškozenou escape sekvenci, například %E0%A4%A. Nástroj dekóduje, co může, poškozené bajty ponechá přesně tak, jak jsou napsány, a oznámí, kolik jich nedokázal dekódovat. Nezastaví se u první chyby.

Okrajové případy

  • Mezery v ručně zadaném odkazu. Adresní řádek prohlížeče mezery kóduje za vás, ale odkaz zkopírovaný do dokumentu může stále obsahovat surové mezery. Zakódujte je dřív, než odkaz pošlete dál.
  • Názvy domén v jiném písmu. Ty používají jiný systém, punycode, a kódování cesty nebo dotazu název hostitele nemění.
  • Půl emoji. Poškozená kopie může zanechat jen polovinu náhradního páru, kterou nelze zakódovat. Nástroj ji nahradí náhradním symbolem a oznámí vám to.
  • Base64 v odkazech. Hodnota Base64 v odkazu se řídí vlastními pravidly, místo + a / se používají - a _. Viz Base64 vysvětleno.

Jak to udělat s fixmint

  1. Vložte text nebo odkaz do pole Text nebo URL.
  2. Zvolte Zakódovat nebo Dekódovat, pak Komponenta pro jednu hodnotu, nebo Celá URL pro celou adresu.
  3. Zaškrtněte Použít + pro mezery (data formuláře) u odkazů zkopírovaných z webového formuláře.
  4. U odkazu si přečtěte Parametry dotazu, dekódované, kde uvidíte každý název a hodnotu.
  5. Zkopírujte výsledek.

Rychlé odpovědi

Co znamená %20?

Mezeru. Její bajtová hodnota je v hexadecimální soustavě 20.

Proč je v mém odkazu + místo %20?

Odkaz pravděpodobně pochází z formuláře, kde + znamená mezeru. Volba „Použít + pro mezery (data formuláře)“ ho dekóduje.

Proč vidím v odkazu %2520?

Hodnota byla zakódována dvakrát. Znaménko procenta z %20 se zakódovalo znovu jako %25. Dekódováním jednou se vrátíte k %20 a dekódováním podruhé k mezeře.

Přeloženo z Anglický originál s pomocí AI.

Komentáře

    Zatím žádné komentáře. Buďte první.

    Vaše hodnocení (nepovinné)

    Váš e-mail se nikde nezobrazuje ani neukládá.

    Obálka knihy How to Remain Valuable When Intelligence Becomes CheapHow to Remain Valuable When Intelligence Becomes Cheap

    224 stran o lidských, ekonomických a strategických výhodách, které zůstanou vzácné, i když umělá inteligence zvládne většinu kognitivních prací.

    $3.84Koupit na GumroaduAnglicky