URL's coderen en decoderen: waarom %20 een spatie is

Heb je ooit %20 of %3D in een URL gezien en je afgevraagd wat dat betekent? We leggen uit wat URL-codering is, waarom het bestaat en hoe je het gebruikt.

Je klikt op een link en ziet iets als https://voorbeeld.nl/zoek?q=hoe%20werkt%20dit%3F in de adresbalk. Wat zijn al die procentsymbolen? En waarom staat er %20 in plaats van een spatie?

Dat is URL-codering — en als je het eenmaal begrijpt, zul je het overal herkennen.

Wat is URL-codering?

Een URL (webadres) mag alleen bepaalde tekens bevatten. Letters (a-z, A-Z), cijfers (0-9) en een paar speciale tekens zoals -, _, . en ~ zijn toegestaan.

Maar spaties, vraagtekens, ampersands en speciale tekens zoals é of ñ zijn niet zomaar toegestaan in een URL. Als je die toch wilt gebruiken, moeten ze worden "gecodeerd".

URL-codering werkt zo: het speciale teken wordt vervangen door een procentteken gevolgd door de hexadecimale waarde van dat teken.

Een spatie heeft hexadecimale waarde 20, dus een spatie wordt %20.
Een vraagteken (?) heeft waarde 3F, maar dat teken heeft ook een speciale betekenis in URLs (het start een querystring), dus in een waarde moet het als %3F worden geschreven.

Veelvoorkomende tekens en hun codes

TekenCode
Spatie%20
!%21
"%22
#%23
&%26
'%27
(%28
)%29
+%2B
/%2F
:%3A
=%3D
?%3F
@%40

Wil je een tekst snel omzetten? Gebruik onze URL encoder / decoder.

Wanneer gebruik je URL-codering?

Zoekterm in een URL

Als je zoekt op Google naar "hoe werkt url codering", wordt dat in de URL:
https://www.google.com/search?q=hoe+werkt+url+codering

Google gebruikt hier + voor spaties (een andere gangbare conventie), maar veel andere systemen gebruiken %20.

Speciale tekens in formulierdata

Wanneer je een formulier invult en op verzenden klikt, coderen browsers de ingevoerde tekst automatisch. Zo worden speciale tekens veilig meegegeven in de URL.

API-aanroepen

Als je via een API data opvraagt met een zoekterm die speciale tekens bevat, moet je die tekens coderen. Anders interpreteert de server de URL verkeerd.

Niet gecodeerd: https://api.voorbeeld.nl/zoek?naam=Jan & Petra
Gecodeerd: https://api.voorbeeld.nl/zoek?naam=Jan%20%26%20Petra

Nederlandse tekens

De letter é (zoals in "café") wordt %C3%A9 in URL-codering. Dat zijn twee bytes, omdat é in UTF-8 met twee bytes wordt voorgesteld.

Decoderen: van codes terug naar tekst

Soms ontvang je een URL met veel procent-codes en wil je weten wat het eigenlijk zegt. Onze URL decoder zet de codes automatisch terug naar leesbare tekst.

Voorbeeld:
Goed%20gedaan%21%20Je%20hebt%20het%20begrepen.
wordt:
Goed gedaan! Je hebt het begrepen.

Het verschil met HTML-entiteiten

HTML-entiteiten (zoals &amp; voor & of &lt; voor <) zijn iets anders dan URL-codering. HTML-entiteiten gebruik je in HTML-documenten, URL-codering gebruik je in webadressen.

Wil je HTML-entiteiten coderen of decoderen? Dat kan met onze HTML entities encoder.

Conclusie

URL-codering is een technisch saaie maar essentiële onderdeel van hoe het web werkt. Elke keer dat je een zoekopdracht doet, een formulier invult of een link deelt met speciale tekens, is URL-codering betrokken.

Nu je weet wat %20 betekent, zal je het nooit meer vergeten.