Så avkodar du en URL-kodad sträng
Avkodning vänder på procentkodningen: varje %XX-sekvens blir en byte, och byten läses som UTF-8-text. Läget Komponent använder decodeURIComponent(), så resultatet blir exakt det ursprungliga värdet.
Genomräknat exempel
UTF-8-sekvenser på flera byte blir ett enda tecken.
- Indata
- caf%C3%A9%20%26%20cr%C3%A8me
- Resultat ·
decodeURIComponent() - café & crème
%20 blir ett mellanslag, men + behålls som ett bokstavligt plustecken.
- Indata
- a+b%20c
- Resultat ·
decodeURIComponent() - a+b c
Den sista sekvensen saknar en hexadecimal siffra, så verktyget visar ett fel.
- Indata
- %E0%A4%A
- Resultat ·
decodeURIComponent() - Ogiltig kodad URL
När den saknade siffran läggs till avkodas de tre byten till en enda devanagaribokstav.
- Indata
- %E0%A4%A4
- Resultat ·
decodeURIComponent() - त
Så hanterar verktyget det
- Varje %XX-sekvens är en byte, och intilliggande byte avkodas tillsammans som UTF-8, så %C3%A9 blir é.
- Ett plustecken tolkas inte som mellanslag: + förblir +. Kommer texten från ett HTML-formulär ersätter du + med %20 innan du avkodar.
- Om någon sekvens är ofullständig eller inte är giltig UTF-8 avvisas hela indatan med ett fel; ingenting avkodas till hälften.
- Läget Fullständig URL (decodeURI) låter escape-sekvenser för reserverade tecken som %26, %2F och %3F förbli kodade, så att URL:ens struktur inte ändras.