Wat Is URL-codering? Een Volledige Uitleg van Percent-codering
Snel antwoord
URL-codering (percent-codering) vervangt unsafe tekens in een URL door % gevolgd door twee hex-cijfers. Bijvoorbeeld, spatie wordt %20, & wordt %26. Het zorgt ervoor dat URL's zonder ambiguïteit kunnen worden verzonden. Gebruik onze gratis URL Encoder en Decoder om in je browser te converteren.
Invoering
URL-codering, ook percent-codering genoemd, is een mechanisme voor het coderen van speciale tekens in een URL zodat ze veilig via het internet kunnen worden verzonden. URL's kunnen slechts een beperkte set ASCII-tekens bevatten —letters, cijfers en een paar reserved tekens. Elk ander teken (spaties, quotes, niet-ASCII letters) moet gecodeerd worden als een procentteken (%) gevolgd door twee hexadecimale cijfers. URL-codering is gedefinieerd door RFC 3986.
Stap voor stap
-
Begrijp welke tekens codering nodig hebben
Niet-gereserveerde tekens (A-Z, a-z, 0-9, -, _, ., ~) hebben geen codering nodig. Gereserveerde tekens (:, /, ?, #, [, ], @, !, $, &, ', (, ), *, +, ,, ;, =) hebben een speciale betekenis in URLs en moeten worden gecodeerd wanneer ze als gegevens worden gebruikt. Alle andere tekens (spaties, aanhalingstekens, niet-ASCII) moeten worden gecodeerd.
-
Leer het coderingsmechanisme
Elk teken dat codering nodig heeft, wordt geconverteerd naar de UTF-8-bytereeks. Vervolgens wordt elke byte weergegeven als %XX, waarbij XX de hexadecimale waarde is. Spatie (0x20) →%20. Het niet-ASCII-teken 'é' (UTF-8: 0xC3 0xA9) →%C3%A9.
-
Maak onderscheid tussen encodeURI en encodeURIComponent
encodeURI() codeert een volledige URL maar behoudt gereserveerde tekens (:/?&=) die deel uitmaken van de URL structuur. encodeURIComponent() codeert alles behalve niet-gereserveerde tekens. Gebruik het voor queryparameterwaarden waarbij gereserveerde tekens gegevens zijn en geen structuur.
-
Decodeer procent-gecodeerd URLs
Decodering keert de codering om: %20 → spatie, %C3%A9 → é. Gebruik decodeURI() voor volledige URLs en decodeURIComponent() voor queryparameterwaarden. Ongeldige escape-reeksen (zoals %ZZ) genereren fouten.
Voorbeelden
Codeer een spatie
Invoer: hello world
Uitvoer: hello%20world
Codeer niet-ASCII-tekst
Invoer: café
Uitvoer: caf%C3%A9
Codeer een queryparameterwaarde
Invoer: name=John Doe & Co.
Uitvoer: name%3DJohn%20Doe%20%26%20Co.
Veelvoorkomende problemen
- Het coderen van de volledige URL wanneer alleen waarden moeten worden gecodeerd: codeer de waarden van queryparameters, niet de URL-structuur (://?&=).
- Dubbele codering: als een URL al is gecodeerd, levert de codering opnieuw %2520 op in plaats van %20. Decodeer eerst als u niet zeker weet of het al gecodeerd is.
- EncodeURI versus encodeURIComponent onjuist gebruiken: encodeURI behoudt URL structuurtekens; encodeURIComponent codeert ze. Gebruik dit laatste voor queryparameterwaarden.
- Ongeldige ontsnappingsreeksen —%ZZ of een enkele % aan het einde zijn ongeldig en zullen fouten veroorzaken bij het decoderen.
Tips
- Codeer altijd queryparameterwaarden die spaties, speciale tekens of gebruikersinvoer kunnen bevatten om injectie van URL te voorkomen.
- Gebruik encodeURIComponent() voor queryparameterwaarden, en encodeURI() voor volledige URLs waarvoor alleen onveilige tekens gecodeerd moeten worden.
- URL-codering is geen codering: iedereen kan het decoderen. Gebruik het nooit om gevoelige gegevens te verbergen.
- Gebruik onze URL Encoder en Decoder voor directe, privéconversie in uw browser.