Hoe het werkt
URL-codering (percent-encoding) vervangt tekens die niet letterlijk in een adres kunnen voorkomen door %XX-reeksen met hun bytewaarde. Een spatie wordt bijvoorbeeld %20.
Het bereik "Component" escapet ook de gereserveerde tekens (= & / ? #): gebruik het voor de waarde van een parameter. "Volledige URL" behoudt de adresstructuur: gebruik die voor een hele URL.
In HTML-formulieren wordt de spatie als + gecodeerd (application/x-www-form-urlencoded); in alle andere gevallen wordt %20 gebruikt, volgens de standaard RFC 3986.
Voorbeelden
hola mundo & máshola%20mundo%20%26%20m%C3%A1sDe "&" wordt geëscapet (%26) zodat hij niet wordt verward met een parameterscheidingsteken; "á" wordt gecodeerd in UTF-8 (%C3%A1).a=1&b=2a%3D1%26b%3D2https://sitio.com/á b?x=1 2URL completa: https://sitio.com/%C3%A1%20b?x=1%202In de modus "Volledige URL" blijven ://, / en ? behouden; alleen wat het adres zou breken, wordt geëscapet.Gebruiksscenario's
- Queryparameters veilig samenstellen bij het handmatig opbouwen van een URL.
- Waarden coderen die &, =, spaties of accenten bevatten voordat je ze in een GET-verzoek verstuurt.
- Een URL decoderen om te lezen welke waarden elke parameter draagt.
- application/x-www-form-urlencoded-bodies voorbereiden voor het verzenden van formulieren.
Veelgestelde vragen
Wat is het verschil tussen "Component" en "Volledige URL"?
"Component" (encodeURIComponent) escapet ook =, &, /, ?, # — voor een afzonderlijke waarde. "Volledige URL" (encodeURI) behoudt die structurele tekens — voor een hele URL.
Wanneer gebruik je + en wanneer %20 voor een spatie?
De + geldt alleen voor de body van formulieren (application/x-www-form-urlencoded). In de rest van de URL is de standaard voor de spatie %20.
Waarom wordt "á" %C3%A1 en niet één enkele %XX?
Omdat het in UTF-8 wordt gecodeerd: niet-ASCII-tekens nemen meerdere bytes in beslag, en elke byte wordt weergegeven door zijn eigen %XX-reeks.
Maakt het coderen van een URL die veilig?
Nee. Het maakt hem alleen geldig op syntaxisniveau. Het is geen versleuteling en beschermt de inhoud op geen enkele manier.