RevealTheme logo

URL-encoder en -decoder

Zet tekst om naar URL-veilige codering (procentcodering) en omgekeerd. Handig voor querystrings, omleidingen en OAuth-flows.

Hoe u deze tool gebruikt

  1. 1

    Choose a mode with the Encode or Decode button at the top (Encode is selected by default).

  2. 2

    Type or paste your text into the input box — a raw value to encode, or a percent-encoded string to decode.

  3. 3

    Click Run to convert the text; the result appears in the monospace box below.

  4. 4

    Copy the output from the result box, or switch modes and click Run again to reverse the conversion.

Wat is URL-codering en wanneer hebt u die nodig?

URL-codering (ook wel 'procentcodering' genoemd, gespecificeerd in RFC 3986) is het proces waarbij tekens die een speciale betekenis hebben in URL's — of tekens die simpelweg niet veilig zijn in URL's — worden omgezet in een hexadecimale escape-reeks '%XX'. De URL-specificatie reserveert bepaalde tekens met een structurele betekenis: '?' start de querystring, '#' start het fragment, '&' scheidt de queryparameters, '/' scheidt de padsegmenten, enzovoort. Als de invoer van de gebruiker een van die tekens bevat en u die ongewijzigd in een URL plaatst, interpreteert de parser deze verkeerd. URL-codering voorkomt dit door elk gereserveerd of onveilig teken te vervangen door zijn hexadecimale byte-representatie voorafgegaan door '%'. Een spatie wordt %20, '&' wordt %26, '=' wordt %3D. Niet-ASCII-tekens (Cyrillisch, Chinees, emoji) worden omgezet in UTF-8-reeksen van meerdere bytes, waarbij elke byte procentgecodeerd wordt. Browsers handelen dit automatisch af wanneer u op een link klikt, maar telkens wanneer u een URL via code samenstelt — bij het opbouwen van een zoekopdracht, een omleidingsbestemming, een OAuth-callback of een webhook-handtekening — moet u de door de gebruiker opgegeven waarden eerst coderen. Deze tool gebruikt dezelfde functies encodeURIComponent / decodeURIComponent die uw JavaScript-code zou gebruiken, zodat het gedrag exact overeenkomt met de productieomgeving.

Veelvoorkomende toepassingen

  • Codeer zoektermen van gebruikers voordat je ze toevoegt aan een zoek-URL (?q=user+input).

  • Geef een OAuth-redirect_uri-parameter veilig door aan een autorisatieserver.

  • Construeer webhook-URL's die gecodeerde JSON-payloads in de querystring bevatten.

  • Codeer een 'returnTo'-URL zodat deze het doorgeven via andere URL's overleeft.

  • Decodeer de gecodeerde waarden die je in de adresbalk van de browser ziet na het verzenden van een formulier.

  • Test hoe een ongeldige URL wordt geparsed – codeer een speciaal teken en kijk wat er gebeurt.

Veelgestelde vragen

Wanneer moet ik een URL coderen?
Codeer altijd de door de gebruiker opgegeven waarden voordat u ze in een URL plaatst: queryparameters, padsegmenten of fragmenten. Niet coderen is een van de meest voorkomende bronnen van subtiele fouten: de waarde 'katten & honden' breekt een querystring totdat deze wordt gecodeerd als 'katten%20%26%20honden'.
Wat is het verschil tussen encodeURI en encodeURIComponent?
encodeURI is voor volledige URL's: het laat structurele tekens zoals '/', '?', '&', '=' ongemoeid omdat ze betekenis hebben in een URL. encodeURIComponent is voor delen van een URL (querywaarden, padsegmenten): het codeert alles wat niet alfanumeriek is. Gebruik encodeURIComponent op de afzonderlijke querywaarden; gebruik nooit encodeURI op een door de gebruiker opgegeven querywaarde (het escapet '&' niet en breekt zo uw querystring).
Wat is URL-veilige Base64 tegenover URL-codering?
Dit zijn verschillende concepten. URL-codering (deze tool) vervangt speciale tekens teken voor teken. URL-veilige Base64 is een variant van Base64 die '-' en '_' gebruikt in plaats van '+' en '/', zodat het resultaat al URL-veilig is zonder aanvullende codering.
Waarom wordt '+' soms gedecodeerd als een spatie?
In application/x-www-form-urlencoded (formulierinzendingen) is '+' de afkorting voor een spatie. De meeste decoders behouden dit. Bij moderne URI-analyse is '%20' de juiste codering van de spatie. decodeURIComponent behandelt '+' als een letterlijke '+'; gebruik decodeURI of een formulierdecoder om '+' in een spatie om te zetten.
Hoe worden niet-ASCII-tekens gecodeerd?
Ze worden eerst omgezet naar UTF-8-bytes en vervolgens wordt elke byte procentgecodeerd. Zo wordt 'café' omgezet in 'caf%C3%A9': 'é' bestaat uit twee UTF-8-bytes (0xC3 0xA9). Deze tool verwerkt UTF-8 correct; sommige oudere tools coderen met Latin-1, wat een andere uitvoer oplevert.
Is URL-codering hetzelfde als HTML-entiteitcodering?
Nee. URL-codering (%XX) escapet tekens voor URL's. HTML-entiteitcodering (&, <) escapet tekens voor HTML-opmaak. De contexten zijn verschillend; het ene coderen in de context van het andere is een veelvoorkomende XSS-fout.

Gerelateerde tools