CodeKitHub
Kódoló eszközök

URL kódoló / dekódoló online

Utolsó frissítés:

Százalékkódold a szöveget URL-ekben való biztonságos használatra, vagy dekódolj egy kódolt URL-t olvasható formára. Válassz komponens módot (mindent kódol, lekérdezési paraméter értékekhez) vagy teljes URL módot (megtartja a :// ? & szerkezetet). Teljes egészében a böngésződben fut.

Mi ez az eszköz?

Az URL kódolás (százalékkódolás) az URL-ekben nem megengedett karaktereket egy % jellel, majd a bájtértékük hexadecimális alakjával helyettesíti — a szóközből %20 lesz, a 你-ból pedig %E4%BD%A0. Enélkül olyan karakterek, mint a szóköz, az &, a ? és a nem ASCII szöveg megtörnék az URL szerkezetét, vagy félreértelmezné a szerver.

Két gyakori igény van, és ez az eszköz mindkettőt támogatja: egy lekérdezési paraméterbe kerülő érték kódolása (komponens mód — a / ? & = jeleket is kódolja), és egy teljes URL kódolása a szerkezetének megőrzésével (teljes URL mód — érintetlenül hagyja a :// ? & jeleket).

Egy érdemes megjegyzésre méltó történelmi furcsaság: a szóköz helyesen %20 az URL szabvány szerint (RFC 3986), de a HTML űrlap-beküldések hagyományosan plusz jellel kódolták — ezért látod mindkettőt a gyakorlatban, a q=hello%20world és a q=hello+world formát is, és ezért kell néha az űrlapadatok dekódolásakor a + jelet külön kezelni.

Miért érdemes használni?

  • Építs biztonságosan lekérdezési karakterláncokat — a &, = vagy szóközöket tartalmazó felhasználói bemenet nem töri meg az URL-edet.
  • Dekódolj hosszú, kódolt URL-eket naplókból, analitikából vagy átirányítási láncokból, hogy lásd, mit is jelentenek valójában.
  • Helyes UTF-8 kezelés kínai szöveghez, emojikhoz és más nem ASCII szöveghez.
  • Két mód, hogy véletlenül ne kódold be egy teljes URL : és / jeleit.
  • Ingyenes, azonnali, nincs feltöltés.

Használati útmutató

  1. Illeszd be a szövegedet vagy URL-edet a beviteli mezőbe.
  2. Válaszd ki a módot: „Komponens” a lekérdezési paraméterbe kerülő értékekhez, „Teljes URL” egész URL-ekhez.
  3. Kattints a „Kódolás” vagy „Dekódolás” gombra.
  4. Másold ki az eredményt.

Példa

Bemenet

https://example.com/search?q=hello world & 你好

Kimenet

Komponens mód: https%3A%2F%2Fexample.com%2Fsearch%3Fq%3Dhello%20world%20%26%20%E4%BD%A0%E5%A5%BD
Teljes URL mód:  https://example.com/search?q=hello%20world%20&%20%E4%BD%A0%E5%A5%BD

A komponens mód a szerkezeti karaktereket is kódolja; a teljes URL mód megőrzi őket.

Gyakori felhasználási esetek

  • Egy megosztható URL összeállítása, ahol egy keresési kifejezés vagy szűrőérték felhasználói bemenetből származik, és tartalmazhat szóközöket, & jelet vagy más speciális karaktereket.
  • Egy hosszú követő vagy átirányító URL dekódolása egy e-mailből vagy hirdetési kampányból, hogy lásd a tényleges célt és paramétereket, mielőtt rákattintanál.
  • Annak kiderítése, miért nem olvassa be helyesen egy szerver egy lekérdezési paramétert — gyakran egy fenntartott karakter az oka, amelyet kódolni kellett volna, de nem történt meg.
  • Nem angol (kínai, japán, arab stb.) érték előkészítése egy URL lekérdezési karakterlánchoz.

encodeURIComponent és encodeURI a gyakorlatban

Ezek közvetlenül megfelelnek ennek az eszköznek a két módjának, és valódi JavaScript funkcióknak felelnek meg, amelyeket a fejlesztők már ismernek: az encodeURIComponent (komponens mód) mindent kódol egy kis, nem fenntartott karakterhalmaz kivételével, így biztonságos bármely, egy URL-be beszúrt egyedi érték számára — ezt használod lekérdezési paraméterhez, útvonalszegmenshez vagy hash-fragmens értékhez. Az encodeURI (teljes URL mód) érintetlenül hagyja az URL szerkezeti karaktereit (:, /, ?, #, &, =), mert feltételezi, hogy egy teljes, már strukturált URL-t kódolsz, nem egy nyers értéket — ha egyetlen paraméterértékre alkalmaznád, nem kódolná az abban esetleg szereplő & vagy = karaktereket, ami a leggyakoribb hiba a rossz mód kiválasztásakor.

Fenntartott és nem fenntartott karakterek

Az URL specifikáció (RFC 3986) két csoportba osztja a karaktereket: a nem fenntartott karakterek (betűk, számok, - _ . ~) mindig biztonságosak és sosem kódolódnak, míg a fenntartott karakterek (: / ? # [ ] @ ! $ & ' ( ) * + , ; =) speciális jelentéssel bírnak az URL szerkezetében, és csak akkor kell kódolni őket, ha szó szerinti adatként jelennek meg, nem szerkezeti írásjelként. Pontosan ezért létezik a két mód — a komponens mód adatnak tekinti a fenntartott karaktereket, amelyeket védeni kell, a teljes URL mód szerkezetnek, amelyet meg kell őrizni. Ennek a különbségnek a megértése hasznosabb, mint memorizálni, mikor melyik módot kell használni, mivel megmagyarázza, miért kódolódik ugyanaz a karakter (pl. &) néha, máskor viszont nem, attól függően, milyen szerepet tölt be az adott URL-ben.

Gyakori kérdések

Mikor használjam a komponens módot, és mikor a teljes URL módot?

Komponens módot (encodeURIComponent) akkor, ha egyetlen értéket kódolsz, amely egy lekérdezési paraméterbe kerül — ez kódolja a /, ?, & és = jeleket, hogy ne törhessék meg az URL-t. Teljes URL módot (encodeURI) akkor, ha egy teljes URL-t kódolsz — ez megtartja a szerkezeti karaktereket, hogy az URL továbbra is működjön.

Miért %20 jelent meg a szóköz helyett a + jel helyett?

Mindkettő érvényes, más-más kontextusban. A %20 a szóköz univerzális százalékkódolása; a + jel csak a régebbi application/x-www-form-urlencoded formátumú lekérdezési karakterláncokon belül jelent szóközt. Ez az eszköz %20-at használ, ami mindenhol működik.

Miért hibázik a dekódolás?

A bemenet hibás százalékos szekvenciát tartalmaz, például egy %-ot, amelyet nem két hexadecimális számjegy követ. Ez gyakran akkor fordul elő, ha egy URL megszakadt vagy kétszer lett dekódolva. Javítsd vagy távolítsd el a hibás % szekvenciát.

Mi a dupla kódolás?

Már kódolt szöveg újbóli kódolása: a %20-ból %2520 lesz, mert maga a % is kódolódik %25-re. Ez egy gyakori hiba — ha a dekódolt kimeneted még mindig % kódokat tartalmaz, dekódold még egyszer.

Kezeli a kínai karaktereket és az emojikat?

Igen. A szöveg UTF-8 bájtokként kódolódik, így a 你好-ból %E4%BD%A0%E5%A5%BD lesz, és tökéletesen visszadekódolható — ugyanez a viselkedés, mint a böngészőknél.

Kapcsolódó eszközök