URL-encoder / -decoder
Codeer tekst voor gebruik in URL's en querystrings, of decodeer percent-gecodeerde URL's terug naar leesbare tekst — met volledige Unicode-ondersteuning, allemaal in uw browser.
Uitvoer
Hoe te gebruiken
Kies Coderen of Decoderen en plak uw tekst of URL. Standaard codeert het één waarde (karakters zoals & = ? / omsnappen). Schakel 'Volledige URI' in om een URL's structuur intact te houden en alleen onveilige karakters om te snappen. Klik kopiëren om het resultaat op te halen. URL-codering, ook wel percent-codering genoemd, is de standaardmanier om tekst veilig in een URL of querystring in te voegen. Elk teken buiten een kleine reeks gereserveerde en niet-gereserveerde ASCII-karakters wordt vervangen door een procentteken gevolgd door twee hexadecimale cijfers die de bytewaarde van dat teken vertegenwoordigen — een spatie wordt %20, een ampersand wordt %26, enzovoort. URL's staan slechts een beperkte reeks ASCII-karakters toe: letters, cijfers en enkele leestekens zoals - _ . ~. Al het andere, inclusief spaties, aanhalingstekens en niet-Engelse letters, moet worden omtsnapt voordat het veilig in een URL kan reizen. Zonder codering kan een browser of server misinterpreteren waar het ene deel van een URL eindigt en het andere begint — een ontsnapte & in een waarde ziet er uit als het begin van een nieuwe queryparameter, een ontsnapte ? ziet er uit als het begin van de querystring zelf, en een ontsnapte # wordt als fragmentaanduiding behandeld, waardoor alles erna stilzwijgend wordt afgekapt. Neem de uitdrukking "café & bar" als voorbeeldwaardequery. De spaties worden %20, de ampersand wordt %26, en de geaccentueerde é — die twee bytes in UTF-8 inneemt — wordt %C3%A9. Percent-gecodeerd wordt de uitdrukking caf%C3%A9%20%26%20bar. Decodering draait het proces om: elk %XX-paar wordt gelezen als een UTF-8-byte en gehergroepeerd tot het oorspronkelijke teken, dus het decoderen van die tekenreeks retourneert café & bar precies zoals het begon. Een volledige URL coderen en één querystring-waarde coderen zijn verschillende taken. Volledige-URI-codering slaat onveilige karakters om maar laat de structurele karakters van een URL — / : ? & = # — bewust onaangeraakt, omdat het verwijderen ervan de URL's eigen syntaxis zou breken. Onderdeel-codering (de standaard hier) slaat dezelfde karakters ook om, omdat een waarde die in een querystring wordt ingevoegd, nooit mag toestaan om een verkeerde & of = in te voeren die een server zou aanduiden als een nieuwe parameter. Percent-codering komt constant voor in alledaagse webwerk: het opbouwen van een queryparameter uit gebruikersinvoer, het delen van een link die een zoekterm of filter bevat, het samenstellen van API-verzoek-URL's, het indienen van formuliergegevens over GET, en het konstrueren van UTM-parameters voor marketinglinks. Het is ook de oplossing voor de klassieke "misvormde URI"-fout die door decodeURIComponent wordt gegenereerd — die fout betekent dat de tekenreeks die wordt gedecodeerd een % bevat die niet wordt gevolgd door twee geldige hexadecimale cijfers, meestal omdat deze onjuist is gecodeerd of twee keer is gecodeerd.
Veelgestelde vragen
- Wat is het verschil tussen het coderen van een onderdeel en een volledige URI?
- Onderdeel-codering (de standaard) slaat gereserveerde karakters om zoals & = ? /, dus het is geschikt voor één querywaarde. Volledige-URI-codering laat die karakters op hun plaats, dus het is geschikt voor een volledige URL.
- Ondersteunt het niet-Engelse karakters?
- Ja. Tekst wordt percent-gecodeerd als UTF-8, dus accenten, emoji's en CJK-karakters worden correct gecodeerd en gedecodeerd.
- Wat gebeurt er als ik ongeldig gecodeerde tekst plak?
- Als een percent-ontsnapping misvormde is (zoals een alleenstaande %), toont decodering een fout in plaats van rommel te produceren.
- Waarom wordt een spatie soms %20 en soms een +?
- Beide vertegenwoordigen een spatie, maar in verschillende contexten. Percent-codering (RFC 3986) gebruikt altijd %20, wat deze tool produceert. Het +-teken is een erfconventie uit het oudere application/x-www-form-urlencoded-format dat door HTML-formulierindieningen wordt gebruikt, waarbij + spatie betekent en een letterlijk plusteken zelf moet worden gecodeerd als %2B.