URL-koder og dekoder (Percent Encoding)
Kod eller dekod URL-parametere (prosentkoding) og analyser query-strenger lokalt.
Slik fungerer det
Kod tekst slik at den trygt kan stå i en URL, eller dekod en eksisterende URL tilbake til lesbar tekst. Skriver du inn en hel adresse med spørsmålstegn, brytes query-strengen opp i en tabell.
Om dette verktøyet
URL-koding (kalt «percent encoding») er hvordan spesialtegn må representeres i en URL for at nettleseren, serveren og alt underveis skal tolke dem korrekt. Tegn som mellomrom, `?`, `&`, `#`, `/`, æøå og emoji må konverteres til `%XX`-sekvenser der `XX` er tegnets byte i heksadesimal. Å glemme dette gir kryptiske feil, mellomrom i en query-parameter kutter URL-en, æ i en filsti gir 404. Dette verktøyet lar deg kode og dekode strenger med de tre vanligste variantene: `encodeURIComponent` (mest brukt), `encodeURI` (bevarer URL-strukturen) og query-string-format (`+` for mellomrom, brukt i skjema-poster).
Slik bruker du det
- Velg modus: «Kod» konverterer klartekst til percent-encoding, «Dekod» går motsatt vei.
- Velg variant, `encodeURIComponent` er standardvalget for query-verdier og path-segmenter.
- Lim inn teksten din, koding/dekoding skjer i sanntid mens du skriver.
- Ved feil i dekoding (ugyldig `%XX`-sekvens) vises en feilmelding under output-feltet.
- Kopier resultatet med ett klikk. Alt kjøres lokalt i nettleseren.
Eksempler
hello world & friends?hello%20world%20%26%20friends%3FBlåbær-smørBl%C3%A5b%C3%A6r-sm%C3%B8r🚀%F0%9F%9A%80Vanlige bruksområder
- Legge inn brukersøk i en URL som sendes til Google/DuckDuckGo (`?q=…`).
- Bygge REST API-kall der path-segmenter eller query-parametere har spesialtegn.
- Kode data for `mailto:`- og `tel:`-lenker.
- Debugge URL-er som ikke virker, dekod for å se hva som faktisk sendes.
- Håndtere norske filnavn i lenker og redirects på tvers av systemer.
- Sende parametere til tredjeparts widgets (Google Maps, YouTube-embed).
Ofte stilte spørsmål
- Hva er forskjellen på `encodeURI` og `encodeURIComponent`?
- `encodeURI` bevarer URL-strukturtegn (`: / ? # [ ] @ ! $ & ' ( ) * + , ; =`), bruk den til å kode en hel URL. `encodeURIComponent` koder alle disse også, bruk den for enkeltverdier som skal legges inn i en URL (typisk `?nøkkel=verdi`). Feil valg = feil kode/dekode.
- Hvorfor ser jeg `+` i stedet for `%20`?
- I gamle HTML-formularer (`application/x-www-form-urlencoded`) kodes mellomrom som `+` i stedet for `%20`. Begge fungerer i query-strengen, men bare `%20` er tillatt i path-delen av URLen. `URLSearchParams` bruker `+` som standard.
- Må jeg kode `å` og `ø` i URL-er?
- Ja, teknisk sett skal alle tegn utenfor ASCII kodes. Moderne nettlesere viser dekodede tegn i adresselinjen for lesbarhet, men koder dem før de sendes. Serveren og backend må dekode fra UTF-8 igjen, dette virker som regel automatisk. Feil oppstår typisk ved bruk av latin-1 eller feil charset.
- Kan jeg dobbeltkode ved uhell?
- Ja, og det er en vanlig feilkilde. Hvis du koder `hello%20world` en gang til, blir det `hello%2520world` (siden `%` blir `%25`). Se etter `%25` i output, det er nesten alltid tegnet på dobbeltkoding. Dekod strengen først hvis du er usikker på om den allerede er kodet.
Teknisk bakgrunn
Percent encoding er definert i RFC 3986. «Reserverte» tegn har spesiell betydning i URL-syntaks og må kodes hvis de brukes bokstavelig i en verdi. «Ureserverte» tegn (bokstaver, tall, `-`, `.`, `_`, `~`) trenger aldri koding. Alle andre bytes (inkludert alle UTF-8 flerbyte-sekvenser) må kodes som `%XX`. JavaScripts `encodeURI` unnlater å kode 82 tegn som er lovlige i en URL, mens `encodeURIComponent` unnlater bare 71 tegn (kodar reserverte tegn også).