Wat is deze tool?
URL-encoding (percent encoding) vervangt tekens die niet zijn toegestaan in URL's door een % gevolgd door hun bytewaarde in hex — een spatie wordt %20, en 你 wordt %E4%BD%A0. Zonder deze omzetting zouden tekens als spaties, &, ? en niet-ASCII-tekst de URL-structuur breken of verkeerd worden geïnterpreteerd door servers.
Er zijn twee veelvoorkomende behoeftes, en deze tool ondersteunt beide: het coderen van een waarde die in een queryparameter komt (component-modus — codeert ook / ? & =), en het coderen van een hele URL met behoud van de structuur (volledige-URL-modus — laat :// ? & intact).
Een historische bijzonderheid om te weten: een spatie is volgens de URL-standaard (RFC 3986) officieel %20, maar bij HTML-formulieren wordt van oudsher een plusteken gebruikt in plaats daarvan — daarom zie je in de praktijk zowel q=hello%20world als q=hello+world, en daarom moet bij het decoderen van formulierdata de + soms apart worden afgehandeld.
Waarom gebruiken?
- Bouw queryparameters veilig op — gebruikersinvoer met &, = of spaties breekt je URL niet meer.
- Decodeer lange gecodeerde URL's uit logs, analytics of doorverwijzingen om te zien wat ze werkelijk zeggen.
- Correcte UTF-8-afhandeling voor Chinees, emoji en andere niet-ASCII-tekst.
- Twee modi, zodat je niet per ongeluk de : en / van een hele URL codeert.
- Gratis, direct, geen upload.
Hoe te gebruiken
- Plak je tekst of URL in het invoerveld.
- Kies de modus: "Component" voor waarden die in queryparameters komen, "Volledige URL" voor complete URL's.
- Klik op "Encode" of "Decode".
- Kopieer het resultaat.
Voorbeeld
Invoer
https://example.com/search?q=hello world & 你好Uitvoer
Component-modus: https%3A%2F%2Fexample.com%2Fsearch%3Fq%3Dhello%20world%20%26%20%E4%BD%A0%E5%A5%BD
Volledige-URL-modus: https://example.com/search?q=hello%20world%20&%20%E4%BD%A0%E5%A5%BDComponent-modus codeert ook structuurtekens; volledige-URL-modus behoudt ze.
Veelvoorkomende toepassingen
- Een deelbare URL bouwen waarbij een zoekterm of filterwaarde afkomstig is van gebruikersinvoer en spaties, & of andere speciale tekens kan bevatten.
- Een lange tracking- of doorverwijzings-URL uit een e-mail of advertentiecampagne decoderen om de werkelijke bestemming en parameters te zien voordat je erop klikt.
- Uitzoeken waarom een queryparameter niet correct wordt gelezen door een server — vaak is de boosdoener een gereserveerd teken dat gecodeerd had moeten zijn maar dat niet was.
- Een niet-Engelse waarde (Chinees, Japans, Arabisch, enz.) voorbereiden voor gebruik in een URL-queryparameter.
encodeURIComponent versus encodeURI, in de praktijk
Deze komen rechtstreeks overeen met de twee modi van deze tool en met echte JavaScript-functies die ontwikkelaars al kennen: encodeURIComponent (component-modus) codeert alles behalve een kleine set niet-gereserveerde tekens, waardoor het veilig is voor elke afzonderlijke waarde die in een URL wordt ingevoegd — dit gebruik je voor een queryparameter, een padsegment of een hash-fragmentwaarde. encodeURI (volledige-URL-modus) laat de structurele tekens van de URL (:, /, ?, #, &, =) ongemoeid omdat het ervan uitgaat dat je een hele, al gestructureerde URL codeert, en niet een losse waarde — het gebruiken op een enkele parameterwaarde zou de & of = die deze waarde kan bevatten niet coderen, wat de meest gemaakte fout is bij het kiezen van de verkeerde modus.
Gereserveerde versus niet-gereserveerde tekens
De URL-specificatie (RFC 3986) verdeelt tekens in twee groepen: niet-gereserveerde tekens (letters, cijfers, - _ . ~) zijn altijd veilig en worden nooit gecodeerd, terwijl gereserveerde tekens (: / ? # [ ] @ ! $ & ' ( ) * + , ; =) een speciale betekenis hebben in de URL-structuur en alleen gecodeerd hoeven te worden wanneer ze als letterlijke data voorkomen in plaats van als structurele leestekens. Precies daarom bestaan de twee modi — component-modus behandelt gereserveerde tekens als te beschermen data, volledige-URL-modus behandelt ze als te behouden structuur. Dit onderscheid begrijpen is nuttiger dan uit je hoofd leren welke modus wanneer moet, want het verklaart waarom hetzelfde teken (zoals &) soms wel en soms niet wordt gecodeerd, afhankelijk van de rol die het speelt in de specifieke URL.
Veelgestelde vragen
Wanneer gebruik ik component-modus versus volledige-URL-modus?
Component-modus (encodeURIComponent) wanneer je één waarde codeert die in een queryparameter komt — het codeert /, ?, & en = zodat ze de URL niet kunnen breken. Volledige-URL-modus (encodeURI) wanneer je een complete URL codeert — het behoudt de structurele tekens zodat de URL blijft werken.
Waarom verschijnt %20 in plaats van + voor spaties?
Beide zijn geldig, maar in verschillende contexten. %20 is de universele percent-encoding voor een spatie; + betekent alleen een spatie binnen queryparameters die het oudere application/x-www-form-urlencoded-formaat gebruiken. Deze tool gebruikt %20, wat overal werkt.
Waarom mislukt decoderen met een foutmelding?
De invoer bevat een misvormde percent-reeks, bijvoorbeeld een % die niet wordt gevolgd door twee hexadecimale cijfers. Dit gebeurt vaak wanneer een URL is afgekapt of dubbel gedecodeerd. Herstel of verwijder de kapotte %-reeks.
Wat is dubbele encoding?
Het coderen van tekst die al gecodeerd is: %20 wordt %2520 omdat het %-teken zelf wordt gecodeerd naar %25. Het is een veelvoorkomende fout — als je gedecodeerde resultaat nog steeds %-codes bevat, decodeer het dan nog een keer.
Werkt dit met Chinese tekens en emoji?
Ja. Tekst wordt gecodeerd als UTF-8-bytes, dus 你好 wordt %E4%BD%A0%E5%A5%BD en decodeert weer perfect terug — hetzelfde gedrag als browsers gebruiken.