tigtools

URL coderen / decoderen

Codeer tekst voor gebruik in een URL of zet escapes zoals %20 terug in leesbare tekst. Kies Component voor één waarde of Volledige URL voor een volledig adres.

Werkt in je browser Geen registratie nodig

Richting
Wat codeert u?

Component (encodeURIComponent) codeert alles behalve letters, cijfers en - _ . ! ~ * ' ( ). Gebruik dit voor één querywaarde, formulierveld of padsegment.

Zo gebruik je deze tool

  1. Kies Coderen of Decoderen.
  2. Kies Component voor één waarde (zoals één queryparameter) of Volledige URL voor een volledig adres.
  3. Typ of plak je tekst. Het resultaat verschijnt direct rechts (of eronder op een telefoon).
  4. Kopieer het resultaat of gebruik “Uitvoer als invoer gebruiken” om de bewerking om te keren en te controleren of je weer op de oorspronkelijke tekst uitkomt.

Hoe het werkt

URL's mogen slechts een beperkt aantal ASCII-tekens bevatten. Alle andere tekens, waaronder spaties, letters met accenten en emoji's, worden geschreven als percent-escapes: het teken wordt omgezet in UTF-8-bytes en elke byte wordt weergegeven als % gevolgd door twee hexadecimale cijfers. Een spatie wordt %20, é wordt %C3%A9 en € wordt %E2%82%AC.

De modus Component gebruikt JavaScript's encodeURIComponent en decodeURIComponent. Deze codeert elk teken met een speciale betekenis in een URL, waaronder / ? # & = + : en @, zodat het resultaat veilig in een querywaarde of één padsegment kan worden geplaatst. Alleen A–Z, a–z, 0–9 en - _ . ! ~ * ' ( ) blijven ongewijzigd.

De modus Volledige URL gebruikt encodeURI en decodeURI. Deze gaat ervan uit dat de invoer al een volledige URL is en laat de gereserveerde tekens ; , / ? : @ & = + $ # ongemoeid, zodat het adres blijft werken. Bij het decoderen laat decodeURI escapes van deze gereserveerde tekens ook ongemoeid: %2F blijft %2F, omdat dit veranderen in / de betekenis van de URL zou wijzigen.

De optie Formuliergegevens volgt application/x-www-form-urlencoded, het formaat dat browsers gebruiken bij het verzenden van HTML-formulieren: een spatie wordt geschreven als + in plaats van %20. Bij het decoderen met deze optie wordt elke + een spatie; een echt plusteken moet dan worden geschreven als %2B.

Ongeldige invoer wordt nooit verwijderd. Als een % niet wordt gevolgd door twee hexadecimale cijfers of als een reeks escapes geen geldige UTF-8 vormt, geeft de tool aan waar het probleem zit en behoudt hij je tekst, zodat je die kunt corrigeren.

Voorbeelden

Een waarde in een querystring plaatsen

Om te zoeken naar “Rock & Roll” op https://example.com/search?q=…, codeer je alleen de waarde in de modus Component: Rock%20%26%20Roll. Zonder codering zou de & de parameter q beëindigen en een nieuwe parameter met de naam “ Roll” starten.

Een URL met spaties en accenten corrigeren

In de modus Volledige URL wordt https://example.com/menu/crème brûlée.html omgezet in https://example.com/menu/cr%C3%A8me%20br%C3%BBl%C3%A9e.html. De slashes en dubbele punt blijven hetzelfde, zodat de link blijft werken.

Gegevens uit een formulierlogboek lezen

Een serverlogboek bevat name=Jane+Doe&city=S%C3%A3o+Paulo. Decodeer dit in de modus Component met “+ behandelen als spatie” ingeschakeld om name=Jane Doe&city=São Paulo te lezen.

Veelgestelde vragen

Wat is het verschil tussen encodeURI en encodeURIComponent?

encodeURIComponent codeert de tekens die URL-onderdelen scheiden (/ ? # & = + : @ en andere), en is daarom bedoeld voor één onderdeel van een URL. encodeURI laat die tekens staan en is bedoeld voor een volledige URL. encodeURI gebruiken voor een querywaarde is een veelvoorkomende fout: een & of = in de waarde wordt dan niet gecodeerd en breekt de querystring.

Moet een spatie worden geschreven als %20 of als +?

In het pad van een URL wordt een spatie altijd weergegeven als %20. In een querystring komen beide voor: %20 is overal geldig, terwijl + alleen een spatie betekent in formuliergecodeerde gegevens (application/x-www-form-urlencoded). Dat is het formaat dat HTML-formulieren en veel serverframeworks gebruiken om querystrings te lezen. Gebruik bij twijfel %20.

Waarom krijg ik een foutmelding bij het decoderen?

Het decoderen mislukt als een %-teken niet wordt gevolgd door twee hexadecimale cijfers (bijvoorbeeld “50% korting”), of als de gecodeerde bytes geen geldige UTF-8 vormen. Dit betekent meestal dat de tekst met een oudere tekencodering is gecodeerd, zoals Latin-1 (é als %E9 in plaats van %C3%A9). De foutmelding geeft aan waar het probleem zit.

Waarom werd %2F in de modus Volledige URL geen slash?

decodeURI laat escapes van gereserveerde tekens zoals / ? # & en = bewust staan, omdat het decoderen ervan de indeling van de URL in onderdelen kan veranderen. Gebruik de modus Component om elke escape te decoderen.

Welke tekens worden nooit gecodeerd?

In beide modi blijven A–Z, a–z, 0–9 en - _ . ! ~ * ' ( ) ongewijzigd. De modus Volledige URL laat ook ; , / ? : @ & = + $ en # ongemoeid.

Privacy

Coderen en decoderen gebeurt volledig in uw browser met de ingebouwde JavaScript-functies. Uw tekst en URL’s worden niet geüpload, opgeslagen of opgenomen in analyses.