fixmint
NL

Procentcodering in URL's: wat %20, + en %2F echt betekenen

Door · · bijgewerkt 8 november 2026 · 5 min leestijd

Procentcodering schrijft een teken dat een URL niet veilig kan dragen als een procentteken, gevolgd door de bytewaarde in hexadecimaal. Een spatie wordt %20, een ampersand wordt %26 en een schuine streep wordt %2F. De codering beschermt de structuur van een link, want tekens als & en = scheiden de onderdelen van een querystring.

URL encoderen en decoderenURL staat vol met %20-codesGratis doen

Welke tekens kunnen ongewijzigd blijven

De URI-standaard (RFC 3986), waarop URL's zijn gebouwd, laat sommige tekens met rust: de letters A tot en met Z en a tot en met z, de cijfers en de vier tekens - _ . ~. Die hoeven nooit gecodeerd te worden. Andere tekens hebben een functie in een URL. De dubbele punt scheidt het schema van de rest, de schuine streep scheidt padonderdelen, het vraagteken begint de query, het hekje begint een fragment, en & en = verdelen de query in namen en waarden. Een teken met een functie moet gecodeerd worden wanneer je het als gegeven bedoelt en niet als structuur.

Daarom kan hetzelfde teken op de ene plek gecodeerd worden en op de andere niet. In een querywaarde moet een ampersand %26 zijn, anders splitst de link op de verkeerde plek. In het pad van een link is het gewoon een teken.

Letters buiten het Engelse alfabet

Letters buiten het basis-Engelse alfabet worden gecodeerd als hun UTF-8-bytes, en elke byte wordt geschreven als een procentcode. De é in café bestaat uit de twee bytes C3 en A9, dus wordt die %C3%A9, en het hele woord wordt caf%C3%A9.

Een eenvoudig voorbeeld maakt de regels concreet. De tekst a b&c=d/é, als component gecodeerd, wordt a%20b%26c%3Dd%2F%C3%A9. Elk teken dat geen veilige letter, cijfer of teken is, wordt gecodeerd: de spatie, de ampersand, het isgelijkteken, de schuine streep en de letter met accent.

Component of volledige URL

Er bestaan twee soorten codering, elk met een reden. Een componentcodering behandelt elk gereserveerd teken als gegeven. Gebruik die voor één waarde, zoals een zoekterm of een bestandsnaam in een link. Als je „rock & roll” als zoekterm codeert, krijg je rock%20%26%20roll, zodat de ampersand binnen de waarde blijft.

Een codering van de volledige URL behoudt de structuur. Codering van https://example.com/a b levert https://example.com/a%20b op, met de schuine strepen en de dubbele punt ongemoeid. Gebruik die voor een compleet adres dat geldig gemaakt moet worden, niet voor een waarde die in een link terechtkomt.

De URL encoderen en decoderen-tool heeft om die reden een instelling Component en Volledige URL. Bij het decoderen van de volledige URL blijven ook gecodeerde structurele tekens zoals %26 en %3D behouden, zodat de link na het decoderen nog werkt.

Plustekens en formuliergegevens

Webformulieren gebruiken een andere conventie. Wanneer een formulier als formuliergegevens wordt verzonden, wordt een spatie geschreven als + in plaats van %20. Een letterlijk plusteken wordt dan geschreven als %2B. De zinsnede C++ tips wordt dus C%2B%2B+tips in formuliergegevens, en C%2B%2B%20tips bij een gewone componentcodering.

Decoderen kent hetzelfde verschil. In een querystring betekent + meestal een spatie. In het pad van een link is + een plusteken. De tool leest + alleen als spatie wanneer Gebruik + voor spaties (formuliergegevens) is aangevinkt. Laat die optie dus uit voor paden en voor waarden waarin een plusteken echt is.

Een lange querystring lezen

Een link draagt vaak zijn instellingen achter het vraagteken. Neem dit voorbeeld:

https://shop.example/search?q=red%20shirt&size=M&tag=summer%2Bsale

Gedecodeerd betekent dit dat de zoekopdracht naar red shirt gaat, de maat M is en de tag summer+sale is. De %2B blijft een plusteken omdat hij gecodeerd was. Plak de link in de URL encoderen en decoderen-tool en die toont na het decoderen elke naam en waarde, wat een lange link makkelijk leesbaar maakt. Wil je alleen het kortere adres zonder trackinginstellingen, gebruik dan eerst Links opschonen.

Dubbele codering

De meest voorkomende fout is een waarde twee keer coderen. Als je de tekst %20 opnieuw codeert, krijg je %2520, omdat het procentteken zelf als %25 wordt gecodeerd. De pagina zoekt dan naar een letterlijke %20 in de waarde, en de zoekopdracht of de pagina komt niet overeen. Decodeer de link één keer, controleer het resultaat en codeer een waarde alleen als je dat nodig hebt.

Kapotte escapes

Een procentteken moet gevolgd worden door twee hexadecimale cijfers, en de cijfers moeten geldige UTF-8 vormen voor letters met accent. Een link die te vroeg is afgebroken, of een losse procentteken dat in een tekst is getypt, kan een kapotte escape achterlaten zoals %E0%A4%A. De tool decodeert wat hij kan, laat de kapotte bytes precies staan zoals ze geschreven zijn en meldt hoeveel hij niet kon decoderen. Hij stopt niet bij de eerste fout.

Randgevallen

  • Spaties in een met de hand getypte link. De adresbalk van een browser codeert spaties voor je, maar een link die in een document is gekopieerd, kan nog ruwe spaties bevatten. Codeer ze voordat je de link doorstuurt.
  • Niet-Engelse domeinnamen. Die gebruiken een apart systeem, punycode, en het coderen van het pad of de query verandert de hostnaam niet.
  • Half emoji. Een beschadigde kopie kan één surrogaathelft achterlaten, die niet gecodeerd kan worden. De tool vervangt die door het vervangingsteken en vertelt je dat hij dat heeft gedaan.
  • Base64 in links. Een Base64-waarde in een link volgt eigen regels, met - en _ in plaats van + en /. Zie Base64 uitgelegd.

Zo doe je het met fixmint

  1. Plak de tekst of link in Tekst of URL.
  2. Kies Coderen of Decoderen, en daarna Component voor één waarde of Volledige URL voor een compleet adres.
  3. Vink Gebruik + voor spaties (formuliergegevens) aan voor links die uit een webformulier zijn gekopieerd.
  4. Lees bij een link Queryparameters, gedecodeerd om elke naam en waarde te zien.
  5. Kopieer het resultaat.

Snelle antwoorden

Wat betekent %20?

Een spatie. De bytewaarde is 20 in hexadecimaal.

Waarom staat er een + in mijn link in plaats van %20?

De link komt waarschijnlijk uit een formulier, waar + voor een spatie staat. De optie „Gebruik + voor spaties (formuliergegevens)” decodeert dat.

Waarom zie ik %2520 in mijn link?

De waarde is twee keer gecodeerd. Het procentteken van %20 is opnieuw gecodeerd als %25. Decodeer één keer om terug te komen bij %20, en nog een keer om de spatie te krijgen.

Vertaald uit de Engels origineel met hulp van AI.

Reacties

    Nog geen reacties. Wees de eerste.

    Je waardering (optioneel)

    Je e-mail wordt nooit getoond of bewaard.

    Omslag van How to Remain Valuable When Intelligence Becomes CheapHow to Remain Valuable When Intelligence Becomes Cheap

    224 pagina's over de menselijke, economische en strategische voordelen die schaars blijven wanneer AI het grootste deel van het cognitieve werk kan doen.

    $3.84Koop op GumroadIn het Engels