URL Encoder/Decoder

Advertentie

Voer tekst in om te coderen voor URL's, of plak gecodeerde tekst om te decoderen.

?Coderen zet leesbare tekst om naar URL-veilig procentgecodeerd formaat. Decoderen keert het proces om.
?Component: codeert alle speciale tekens (beste voor querywaarden). Volledige URL: behoudt URL-structuur zoals :/?#. Formulier: gebruikt + voor spaties (application/x-www-form-urlencoded formaat).
?Wanneer ingeschakeld, wordt de uitvoer bijgewerkt terwijl u typt. Schakel uit voor grote teksten en gebruik Ctrl+Enter om handmatig te verwerken.
Invoer
Uitvoer

Hoe te gebruiken

  1. Voer tekst in om te coderen voor URL-gebruik, of plak percent-gecodeerde tekst om te decoderen.
  2. Kies Componentmodus voor queryparameters, Volledige URL-modus voor URL-structuur, of Formuliermodus voor application/x-www-form-urlencoded formaat.
  3. Bekijk het live bijgewerkte resultaat en kopieer de gecodeerde/gedecodeerde uitvoer.
Advertentie

Over deze tool

URL-codering, formeel bekend als procentcodering, is het mechanisme waarmee speciale tekens worden omgezet in een formaat dat veilig kan worden verzonden binnen Uniform Resource Identifiers (URI's). Gedefinieerd in RFC 3986, zorgt deze standaard ervoor dat elk teken in een webadres eenduidig en correct wordt geïnterpreteerd door browsers, servers en tussenliggende systemen. Tekens buiten de niet-gereserveerde set—letters, cijfers, koppeltekens, punten, underscores en tildes—moeten worden weergegeven als een procentteken gevolgd door twee hexadecimale cijfers die overeenkomen met de bytewaarde van het teken. Het concept van URI's werd in 1994 geformaliseerd door Tim Berners-Lee als onderdeel van de fundamentele architectuur van het World Wide Web. Omdat de oorspronkelijke URI-specificatie beperkt was tot de ASCII-tekenset (slechts 128 tekens), was er een mechanisme nodig om het enorme scala aan tekens weer te geven dat in menselijke talen wereldwijd wordt gebruikt. Procentcodering vulde deze leemte door elke byte van een UTF-8-gecodeerd teken om te zetten naar zijn hexadecimale weergave voorafgegaan door %. Naarmate het web echt mondiaal werd, leidde de behoefte aan niet-ASCII-tekens in webadressen tot de ontwikkeling van Internationalized Resource Identifiers (IRI's), gedefinieerd in RFC 3987. IRI's breiden de URI-syntaxis uit om Unicode-tekens rechtstreeks in bepaalde componenten toe te staan, terwijl ze nog steeds afhankelijk zijn van procentcodering wanneer het adres moet worden verzonden via protocollen die alleen ASCII ondersteunen. Moderne browsers tonen IRI's in gedecodeerde vorm voor leesbaarheid, maar converteren ze naar procentgecodeerde URI's voor netwerkverzoeken. Deze tool implementeert coderings- en decoderingsoperaties volledig in uw browser met behulp van native JavaScript-functies, zodat uw gegevens nooit naar een server worden verzonden. Het ondersteunt zowel codering op componentniveau voor individuele querywaarden als volledige URL-codering die de structurele scheidingstekens van een webadres behoudt.

Bronnen: IETF

De Wetenschap en Geschiedenis van Procentcodering

Procentcodering ontstond uit een fundamentele beperking van het vroege internet: de ASCII-restrictie. Toen Tim Berners-Lee in 1994 de URL-syntaxis ontwierp, beperkte de Uniform Resource Locator-specificatie (RFC 1738) webadressen tot een kleine subset van ASCII-tekens. Dit was logisch voor het overwegend Engelstalige internet van de vroege jaren '90, maar het betekende dat elk teken buiten deze veilige set een representatiemechanisme nodig had. De oplossing was elegant eenvoudig: vertegenwoordig elke onveilige byte als een procentteken gevolgd door zijn tweecijferige hexadecimale waarde. Een spatie (bytewaarde 32, hex 20) wordt %20, een vraagteken (bytewaarde 63, hex 3F) wordt %3F. Dit schema kon elke bytewaarde van 00 tot FF vertegenwoordigen, waardoor het elk teken in elke tekenset kon coderen. De introductie van UTF-8 als de standaard tekencodering van het web transformeerde procentcodering van een eenvoudig byte-toewijzingsschema naar een multi-byte coderingssysteem. Een enkel Chinees teken kan drie bytes in UTF-8 vereisen, wat drie opeenvolgende procentgecodeerde drielingen oplevert. Het euroteken bijvoorbeeld bezet drie bytes (E2, 82, AC) en wordt de zespositiereeks %E2%82%AC. Daarom kunnen gecodeerde URL's met niet-Latijnse tekst er aanzienlijk langer uitzien. RFC 3986, gepubliceerd in 2005, verfijnde de oorspronkelijke URL-specificatie en formaliseerde de moderne regels voor procentcodering. Het vestigde het concept van gereserveerde en niet-gereserveerde tekensets, waarbij werd verduidelijkt welke tekens als structurele scheidingstekens in URL's dienen. Dit onderscheid verklaart waarom er twee coderingsfuncties in JavaScript bestaan: encodeURI behoudt structuurtekens voor volledige URL's, terwijl encodeURIComponent alles codeert voor veilige inbedding. De specificatie introduceerde ook het principe van normalisatie, dat definieert wanneer twee verschillend gecodeerde URL's als equivalent moeten worden beschouwd.

Hoe te gebruiken

  1. Voer tekst in om te coderen voor URL-gebruik, of plak percent-gecodeerde tekst om te decoderen.
  2. Kies Componentmodus voor queryparameters, Volledige URL-modus voor URL-structuur, of Formuliermodus voor application/x-www-form-urlencoded formaat.
  3. Bekijk het live bijgewerkte resultaat en kopieer de gecodeerde/gedecodeerde uitvoer.

Methodologie

URL-codering vervangt onveilige ASCII-tekens door een procentteken (%) gevolgd door twee hexadecimale cijfers die de bytewaarde van het teken vertegenwoordigen. Een spatie wordt bijvoorbeeld %20 (hex 20 = decimaal 32), een ampersand wordt %26 en een plusteken wordt %2B. De codering volgt RFC 3986, die de set van niet-gereserveerde tekens definieert die nooit codering nodig hebben: hoofd- en kleine letters (A-Z, a-z), cijfers (0-9) en vier speciale tekens (koppelteken, punt, underscore, tilde). Deze tool biedt twee coderingsmodi die rechtstreeks overeenkomen met JavaScript's native functies. De Componentmodus gebruikt encodeURIComponent(), die elk teken behalve de niet-gereserveerde set codeert, ideaal voor queryparameterwaarden waar tekens als & en = moeten worden ge-escaped. De Volledige URL-modus gebruikt encodeURI(), die aanvullend URL-structuurtekens bewaart zoals : / ? # [ ] @ ! $ & ' ( ) * + , ; = zodat een volledige URL functioneel blijft na codering. Voor internationale tekens en emoji's converteert de tool eerst de tekst naar zijn UTF-8 byterepresentatie en codeert vervolgens elke byte afzonderlijk. Een enkel Unicode-teken zoals het euroteken kan meerdere procentgecodeerde drielingen produceren (%E2%82%AC) omdat UTF-8 variabele-lengte codering van een tot vier bytes per teken gebruikt.

Bronnen: IETF

Je resultaten begrijpen

Gebruik de Componentmodus (encodeURIComponent) wanneer u een waarde codeert die na een gelijkteken in een querystring wordt geplaatst. Dit zorgt ervoor dat tekens zoals &, = en # in uw waarde de URL-structuur niet per ongeluk beschadigen. Gebruik de Volledige URL-modus (encodeURI) wanneer u een volledige URL hebt en alleen spaties en niet-ASCII-tekens wilt coderen terwijl de structurele scheidingstekens intact blijven. Als u %25 in uw uitvoer ziet, betekent dit dat het procentteken zelf is gecodeerd, wat doorgaans dubbele codering aangeeft—de invoer was al procentgecodeerd voordat u deze verwerkte. Zulke strings twee keer decoderen herstelt de oorspronkelijke tekst. Dit is een van de meest voorkomende URL-coderingsfouten in webapplicaties en API's. Decodering is nuttig om URL's leesbaar te maken tijdens debugging, serverlogboeken te analyseren of queryparameters met gecodeerde waarden te inspecteren. Internationale domeinnamen (IDN) gebruiken een andere codering genaamd Punycode in plaats van procentcodering, dus domeinnamen met niet-Latijnse tekens vereisen aparte afhandeling. Codeer gebruikersinvoer altijd voordat u deze in URL's invoegt om injectieaanvallen te voorkomen.

Praktische voorbeelden

Zoekqueryparameter: het coderen van 'coffee & tea' in Componentmodus produceert 'coffee%20%26%20tea', waarbij zowel spaties als de ampersand veilig worden ge-escaped zodat de server de letterlijke tekst ontvangt. Formulierinzending: een gebruiker voert 'price=50$' in, dat moet worden gecodeerd als 'price%3D50%24' om te voorkomen dat het gelijkteken als sleutel-waardescheider wordt geinterpreteerd. API-redirect-URL's: bij het doorgeven van een callback-URL als parameter aan een andere URL codeert de Componentmodus de volledige callback inclusief zijn eigen querystring. Meertalige inhoud: het coderen van Japanse tekst produceert UTF-8 bytereeksen als procentdrielingen. Debug-decodering: plak een volledige URL uit serverlogboeken en decodeer deze om de oorspronkelijke query direct te zien voor snelle probleemoplossing.

Tips en Best Practices

Gebruik altijd de Componentmodus bij het coderen van individuele queryparameterwaarden. De Volledige URL-modus laat structuurtekens zoals & en = ongecodeerd, wat uw URL zal beschadigen als die tekens in de data zelf voorkomen in plaats van als scheidingstekens. Vermijd dubbele codering door te controleren of uw invoer al procentgecodeerd is. Als u reeksen zoals %20 of %26 in de invoer ziet, decodeer dan eerst voordat u opnieuw codeert om stapeling te voorkomen (waarbij %20 wordt tot %2520). Bij het programmatisch opbouwen van URL's codeert u elke parameterwaarde apart en stelt u vervolgens de volledige URL samen. Codeer nooit de gehele URL-string in een keer, want dit beschadigt de structuurtekens die schema, host, pad en querycomponenten scheiden. Voor het debuggen van API-aanroepen plakt u de volledige gecodeerde URL in de decoderingsmodus om alle parameterwaarden snel in leesbare vorm te bekijken. Dit is vooral handig bij het oplossen van problemen met webhook-URL's of OAuth-callback-redirects met geneste gecodeerde waarden.

Veelgebruikte URL-coderingen

Teken Naam Gecodeerd Formulier
(space)Space%20+
!Exclamation%21%21
#Hash%23%23
$Dollar%24%24
%Percent%25%25
&Ampersand%26%26
'Apostrophe%27%27
+Plus%2B%2B
,Comma%2C%2C
/Slash%2F%2F
:Colon%3A%3A
;Semicolon%3B%3B
=Equals%3D%3D
?Question%3F%3F
@At sign%40%40

Alle berekeningen worden lokaal in je browser uitgevoerd. Er worden geen gegevens naar een server gestuurd.

Deze tool insluiten

Code ophalen

Was deze tool nuttig?
Wil je ons meer vertellen?
0/500
Wil je dat we contact opnemen?
Bedankt voor je feedback!

Veelgestelde vragen

Wat is het verschil tussen Component- en Volledige URL-modus?
Componentmodus (encodeURIComponent) codeert ALLE speciale tekens inclusief : / ? # en meer. Volledige URL-modus (encodeURI) behoudt URL-structuurtekens.
Welke tekens worden gecodeerd?
In componentmodus wordt alles behalve letters (A-Z, a-z), cijfers (0-9) en - _ . ~ gecodeerd.
Kan ik meerdere waarden tegelijk coderen?
Ja! Voer meerdere waarden in op aparte regels en elke regel wordt apart gecodeerd.
Waarom moet ik URL's coderen?
URL's mogen alleen bepaalde ASCII-tekens bevatten. Speciale tekens zoals spaties, & en = moeten worden gecodeerd om correct door browsers en servers te worden verwerkt.
Welke standaard volgt deze tool voor URL-codering?
Deze tool implementeert procentcodering zoals gedefinieerd in RFC 3986 (Uniform Resource Identifier: Generic Syntax). Het gebruikt JavaScripts ingebouwde encodeURIComponent() voor componentmodus en encodeURI() voor volledige URL-modus, die beide voldoen aan de RFC 3986-specificatie. Tekens worden gecodeerd als procentteken gevolgd door hun UTF-8-bytewaarden in hexadecimaal (bijv. een spatie wordt %20).
Verwerkt deze tool internationale tekens en emoji's?
Ja. De tool ondersteunt volledig UTF-8-codering, wat betekent dat internationale tekens (letters met accenten, Chinees, Arabisch, Japans, Koreaans, enz.) en emoji's correct worden gecodeerd als hun multi-byte procentgecodeerde reeksen. Zo wordt het euroteken %E2%82%AC en worden emoji's gecodeerd als hun 4-byte UTF-8-reeksen. Decodering herstelt de originele tekens perfect.
Wat is de Formuliercoderingsmodus en wanneer moet ik die gebruiken?
Formuliermodus gebruikt het formaat application/x-www-form-urlencoded, de standaard voor HTML-formulierinzendingen en POST-verzoekbodies. Het belangrijkste verschil met Componentmodus is dat spaties worden gecodeerd als + (plusteken) in plaats van %20. Dit formaat wordt gebruikt door browsers bij het verzenden van HTML-formulieren, door veel OAuth-implementaties voor tokenverzoeken, en in sommige API-querystrings. Gebruik Formuliermodus wanneer u precies moet overeenkomen met wat een browser verzendt in een formulier-POST, of wanneer een API specifiek het formaat application/x-www-form-urlencoded vereist. Voor algemene URL-codering is Componentmodus meestal de betere keuze.