In dit artikel
Wat is URL-codering?
URL-codering (ook wel percent-codering genoemd) converteert tekens die onveilig of gereserveerd zijn in URL's naar een veilig formaat. Elk onveilig teken wordt vervangen door een %-teken gevolgd door de tweecijferige hexadecimale ASCII-code. Een spatie wordt bijvoorbeeld %20 en een ampersand wordt %26.
URL's mogen alleen een beperkte set ASCII-tekens bevatten. Tekens buiten deze set — waaronder spaties, niet-ASCII-letters en speciale symbolen — moeten percent-gecodeerd worden om veilig in een URL te kunnen worden verzonden.
Hoe URL-codering werkt
De encoder identificeert tekens die niet veilig zijn in URL's en vervangt ze door hun percent-gecodeerde equivalenten.
- Detectie van veilige tekens — letters, cijfers en - _ . ~ worden ongewijzigd gelaten
- Verwerking van gereserveerde tekens — ! * ' ( ) ; : @ & = + $ , / ? # [ ] worden in de meeste contexten gecodeerd
- Unicode-ondersteuning — niet-ASCII-tekens worden eerst UTF-8-gecodeerd, waarna elke byte percent-gecodeerd wordt
Probeer gratis — geen aanmelding vereist
Een URL coderen of decoderen →Wanneer URL-codering gebruiken
URL-codering is vereist wanneer speciale tekens voorkomen in URL-onderdelen.
- Queryparameters — codeer waarden die als querystring-parameters worden doorgegeven, vooral door gebruikers ingevoerde zoektermen
- API-verzoeken — codeer padsegmenten en parameters bij het programmatisch opbouwen van API URL's
- Formulierdata — codeer formulierdata voordat je het toevoegt aan URL's in GET-verzoeken
Veelgestelde vragen
Wat is het verschil tussen encodeURI en encodeURIComponent in JavaScript?
encodeURI codeert een volledige URL en laat tekens zoals /, :, # intact omdat ze een structurele betekenis hebben in URL's. encodeURIComponent codeert één URL-onderdeel (zoals een queryparameterwaarde) en percent-codeert die structurele tekens ook. Gebruik voor het coderen van individuele parameterwaarden altijd encodeURIComponent.
Waarom verschijnt een spatie soms als + in plaats van %20?
Het application/x-www-form-urlencoded-formaat (gebruikt bij HTML-formulierverzendingen) codeert spaties als + in plaats van %20. Dit is een verouderde conventie uit de vroege webstandaarden. In querystrings van HTML-formulieren betekent + een spatie; in andere URL-contexten wordt %20 gebruikt. Beide zijn geldig, maar de context bepaalt welke je gebruikt.
Moet ik de hele URL coderen of slechts delen ervan?
Codeer alleen afzonderlijke onderdelen (padsegmenten, queryparameterwaarden). De hele URL coderen zou ook de tekens :, / en ? coderen die de URL-structuur definiëren, waardoor de URL ongeldig wordt. De vuistregel: codeer waarden, niet de structurele tekens die de URL vormen.