raatools/

URL-kodare / -avkodare

Koda eller avkoda URL:er och frågesträngar.

Vad är URL-kodning?

URL-kodning (också kallat procentkodning) ersätter osäkra tecken i URL:er med ett procenttecken (%) följt av två hexadecimala siffror. URL:er kan bara innehålla en begränsad uppsättning tecken (bokstäver, siffror och några symboler). Mellanslag, icke-ASCII-tecken och reserverade tecken (?, &, =, #) måste kodas: mellanslag blir %20 (eller +), å blir %C3%A5.

URL-kodning definieras i RFC 3986. Det är nödvändigt för: sökparametrar med specialtecken, filnamn med mellanslag, internationella domännamn, formulärdata (application/x-www-form-urlencoded) och API-förfrågningar med JSON-data i URL:en. De flesta programmeringsspråk har inbyggda funktioner: encodeURIComponent() i JavaScript, urllib.parse.quote() i Python, URLEncoder.encode() i Java.

Nar behover du URL-koda?

  • Skicka specialtecken i query-strangparametrar (t.ex. ?q=hello%20world).
  • Koda formulordata som skickas via HTTP POST med application/x-www-form-urlencoded innehalllstyp.
  • Konstruera API-forfragnings-URL:er programmatiskt med anvandartillhandahllen indata.
  • Boadda URL:er inuti andra URL:er (t.ex. omdirigeringsparametrar).
  • Inkludera Unicode-tecken (accenterade bokstaver, emojis, CJK-tecken) i URL:er.

Koda vs. avkoda

Kodning konverterar vanlig text till en URL-saker strang genom att ersatta osakra tecken med procentkodade motsvarigheter. Avkodning reverserar processen och konverterar procentkodade sekvenser tillbaka till sina ursprungliga tecken. Detta verktyg later dig vaxla mellan kodnings- och avkodningsriktning med ett enda klick.

Hur du använder detta verktyg

Klistra in text för att koda eller koda av den. Verktyget hanterar fullständig URL-kodning inklusive UTF-8-tecken, reserverade tecken och redan kodade sekvenser. Du kan välja mellan att koda hela strängen eller bara specialtecken. Verktyget visar den kodade/avkodade utdatan i realtid och stöder bulk-bearbetning.

Tecken som kodas

Detta verktyg anvander JavaScripts encodeURIComponent()-funktion, som kodar alla tecken utom: A-Z, a-z, 0-9, och de oreserverade tecknen - _ . ~ * ' ( ). Detta ar korrekt kodning for query-parametervarden och formulaerdata. Den snarlikaencodeURI()-funktionen ar mindre aggressiv och bevarar tecken som : / ? # som har betydelse i URL-strukturen.

Vanliga URL-kodningsmisstag

Det vanligaste misstaget ar dubbelkodning -- att koda en strang som redan ar kodad, vilket gor %20 till %2520. Detta bryter URL:er och forvirrar servrar. Kontrollera alltid om din indata redan ar kodad innan du tillaampar kodning. Ett annat fel ar att anvanda encodeURI() nar encodeURIComponent() behovs, vilket lamnar & och = okodade i parametervarden.

Att inte koda anvandarindata innan den infogas i URL:er ar en sakerhetssarbarhet. Okodad anvandarindata kan injicera extra query-parametrar, bryta URL-parsning eller mojliggora injektionsattacker. Koda alltid anvaandartillhandahallen varden nar du bygger URL:er programmatiskt.

Praktiska tips

I webbutveckling hanterar de flesta ramverk URL-kodning automatiskt vid formularinskickning och i HTTP-klientbibliotek. Manuell kodning behovs vanligtvis nar du bygger URL:er dynamiskt i JavaScript, nar du skickar data i URL-fragment, eller nar du felsaoker API-anrop som innehaller specialtecken.

Vanliga frågor

Vad är skillnaden mellan encodeURI och encodeURIComponent?

encodeURI() kodar en hel URL men bevarar reserverade tecken (://?#[]@) som har speciell betydelse i URL-strukturen. encodeURIComponent() kodar allt utom bokstäver, siffror och - _ . ~ — den är avsedd för att koda enskilda parametervärden. Använd encodeURI för hela URL:er och encodeURIComponent för parametervärden: encodeURI('https://example.com/path?q=hello world') kontra 'q=' + encodeURIComponent(userInput).

Varför måste mellanslag kodas?

RFC 3986 definierar teckenuppsättningen som är tillåten i URL:er, och mellanslag ingår inte. Historiskt har mellanslag kodats som + i formulärdata (application/x-www-form-urlencoded) och som %20 i URL-sökvägar. Båda är giltiga men i olika sammanhang. Moderna API:er och webbramverk hanterar detta automatiskt, men det är viktigt att förstå skillnaden vid manuell URL-konstruktion.