Jak URL kódování funguje
V adresách smí být jen málo znaků: písmena bez diakritiky, číslice a pár interpunkčních znaků. Vše ostatní se kóduje. V UTF-8 se ř skládá z bajtů C5 a 99, proto vzniká %C5%99. Mezera se zapisuje jako %20, ve formulářích jako +.
Kódovaný
%C5%BDlu%C5%A5ou%C4%8Dk%C3%BD k%C5%AF%C5%88 v Praze
Dekódovaný
Žluťoučký kůň v Praze
Nejčastější URL kódy
%C4%8D= č,%C5%99= ř,%C5%A1= š,%C5%BE= ž,%C4%9B= ě,%C5%AF= ů%C3%A1= á,%C3%AD= í,%C3%A9= é,%C3%BD= ý,%C3%BA= ú%C4%8C= Č,%C5%98= Ř,%C5%A0= Š,%C5%BD= Ž%E2%82%AC= €,%E2%80%99= ’,%E2%80%93= –%20= mezera,%2F= /,%3F= ?,%26= &,%25= %
České znaky poznáte podle začátku kódu: %C3 mají samohlásky s čárkou (á, í, é), %C4 a %C5 pak háčky (č, ě, š, ř, ž, ů). Každé písmeno s diakritikou jsou tedy dva kódy za sebou. Starší systémy kódují písmeno jedním bajtem z Windows-1250: P%F8%EDli%9A místo P%C5%99%C3%ADli%C5%A1. Mojibuster pozná i to a udělá z něj Příliš.
Odkud se URL kódovaný text bere
- Zkopírované odkazy: prohlížeč ukazuje
cs.wikipedia.org/wiki/Plzeňčitelně, ale po zkopírování bývá ve schráncePlze%C5%88. - Formuláře a sledování: hledané výrazy a parametry UTM se ukládají kódované v logu serveru a v exportech analytiky, například
?q=%C5%99%C3%ADzek. - Exporty a rozhraní API: některé nástroje pro newslettery, webhooky a API ukládají hodnoty kódované; v souboru CSV pak místo jmen stojí kódy.
- Názvy souborů: stažený soubor se jmenuje
Faktura%20%C5%98ehovi.pdf, když server název nedekóduje.
Kódy a rozsypaný čaj najednou
Někdy je text rozbitý dvakrát: %C4%B9%E2%84%A2 je URL kódované Ĺ™, tedy ř, které se nejdřív špatně přečetlo a pak zakódovalo. Mojibuster nejdřív rozkóduje kódy a pak opraví rozsypaný čaj. Podrobně v části Windows-1250 na UTF-8. Nakonec zase stojí ř.
Volba Převést i kódy je na této stránce už zapnutá. Převádí také kódy HTML (ř), e-mailové kódy (=C5=99) a escape sekvence z programového kódu (\u0159). Co je to vlastně rozsypaný čaj.
Dekódovat sám: Excel, JavaScript, Python a PHP
- Excel: má jen funkci pro kódování (
ENCODEURLv anglické verzi), pro dekódování žádnou. Nejsnáze: sloupec zkopírovat, vložit sem a výsledek vrátit zpět. Viz také rozsypaný čaj v Excelu. - JavaScript:
decodeURIComponent("Plze%C5%88")vrátíPlzeň. - Python:
urllib.parse.unquote("Plze%C5%88"), pro data formulářů s+jako mezerouunquote_plus. - PHP:
rawurldecode(), pro data formulářůurldecode().
Časté otázky
Co znamená %C5%99?
Je to ř v URL kódování: dva bajty UTF-8 C5 a 99, každý s % před sebou. Stejně je %C4%8D písmeno č a %C5%A1 písmeno š.
Co znamená %20?
Mezeru. V datech formulářů se často používá místo ní +. Mojibuster + nechává, protože v běžném textu to může být skutečné plus.
Nahrávají se moje odkazy?
Ne. Převod probíhá celý ve vašem prohlížeči. Odkazy s tokeny, e-maily nebo osobními údaji zařízení neopustí.
Proč se 100% nezmění?
Mojibuster mění jen posloupnosti, ze kterých vznikne skutečný znak. 100%, 50 % nebo osamělé %20 v běžném textu zůstanou, jak jsou.