CodeKitHub
Codeertools

URL Encoder / Decoder Online

Laatst bijgewerkt:

Zet tekst om naar percent encoding voor veilig gebruik in URL's, of decodeer een gecodeerde URL terug naar leesbare vorm. Kies component-modus (codeert alles, voor waarden van queryparameters) of volledige-URL-modus (houdt de structuur :// ? & intact). Draait volledig in je browser.

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

  1. Plak je tekst of URL in het invoerveld.
  2. Kies de modus: "Component" voor waarden die in queryparameters komen, "Volledige URL" voor complete URL's.
  3. Klik op "Encode" of "Decode".
  4. 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%BD

Component-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.

Gerelateerde tools