Haladó beállítások
+ konvertálása szóközökké
Ha engedélyezve van, a + karakterek szóközökké lesznek konvertálva. Ez hasznos a lekérdezési paraméterek dekódolásakor.
Élő mód
Ha engedélyezve van, a szöveg automatikusan dekódolásra kerül gépelés közben.
Ezek a beállítások segítenek szabályozni, hogy a kódolt karakterek hogyan legyenek dekódolva az URL-ekben.
Mi az URL dekódolás?
Az URL dekódolás megfordítja a százalékos kódolást: beolvassa a %XX escape szekvenciákat egy kódolt URL-ben, és visszaalakítja őket az általuk képviselt karakterekké. Így nyersz vissza egy olvasható lekérdezési karakterláncot, űrlapértéket vagy útvonalszegmenst egy olyan URL-ből, amelyet egy böngésző, API vagy naplósor kódolva adott neked.
Hogyan működik az URL dekódolás?
Az URL dekódolás egy adott folyamatot követ a százalékosan kódolt szekvenciák visszaalakításához az eredeti karakterekké:
- A bemeneti karakterlánc beolvasásra kerül százalékosan kódolt escape szekvenciák (XX) keresésére
- Minden %XX a két hex számjegyből vissza lesz konvertálva az eredeti bájtértékre
- Az egymást követő dekódolt bájtok UTF-8 karakterekké lesznek összeállítva (egy több bájtos szekvencia egy karakter lesz)
- Lekérdezési karakterlánc kontextusban a + szóközként lesz dekódolva (application/x-www-form-urlencoded), míg a %2B szó szerinti + marad
- A nem fenntartott karakterek és a már dekódolt szöveg változatlanul áthalad
Miért használj URL dekódolót?
- Olvasható kimenet: a %20, %40 és %3D visszaalakítása szóközökké, @-jellé és =-jé, hogy elolvasd, mit mond valójában egy URL
- Nemzetközi szöveg: az ékezetes és nem-ASCII karakterek visszaépítése az UTF-8 bájt szekvenciáikból, így a %C3%A9 ismét é-ként olvasható
- Hibakeresés: a valódi értékek ellenőrzése egy lekérdezési karakterláncban, OAuth átirányításban vagy webhook adatban, mielőtt cselekszel rájuk
- Szabványkövető: dekódolás RFC 3986 szerint, ugyanazokkal a szabályokkal, amelyeket a böngészők és szerverek használnak, így pontosan azt látod, amit ők látnak
Mik az URL dekódolás gyakori alkalmazásai?
Az URL dekódolás számos webes fejlesztési forgatókönyvben elengedhetetlen:
- Űrlap beküldések: az eredeti mezőértékek visszaolvasása az application/x-www-form-urlencoded GET és POST adatokból
- API fejlesztés: a százalékosan kódolt útvonal- és lekérdezési paraméterek kibontása, amelyek egy API végponthoz érkeznek
- Fájlrendszerek: a fájlútvonalak és nevek visszanyerése, amelyek százalékosan lettek kódolva, hogy URL-en belül utazhassanak
- Linkek hibakeresése: a megosztott vagy naplózott URL-ek dekódolása, hogy lásd a speciális karaktereket és nemzetközi szöveget, amelyeket hordoznak
Hogyan néz ki egy URL dekódolási példa?
Íme néhány gyakori példa az URL dekódolásra: %20 (vagy +) szóköz lesz, %40 @ lesz, %23 # lesz, %26 & lesz, és %3D = lesz. Egy UTF-8 szekvencia, mint %C3%A9, a nemzetközi é karakter lesz.
Mi a százalékos kódolás?
A százalékos kódolás az RFC 3986 §2.1 által meghatározott mechanizmus azon karakterek reprezentálására, amelyek nem biztonságosak vagy fenntartottak egy URI-n belül. A szabály mechanikus: minden bájt, amely nem jelenhet meg szó szerint, egy százalékjel és két hexadecimális számjegy — a %XX forma — formájában van írva, ahol XX a bájt értéke. A nem-ASCII karakterek, mint az é, először az UTF-8 bájt szekvenciájukként vannak kódolva, majd minden bájt százalékosan van kódolva egyenként. A fejlesztők szinte naponta találkoznak ezzel: lekérdezési karakterláncokban, űrlapbeküldésekben, OAuth visszahívási URL-ekben, REST API útvonal paraméterekben és bárhol, ahol egy URL-nek írásjeleket, szóközöket vagy a nem fenntartott készleten A–Z a–z 0–9 - _ . ~ kívüli karaktereket kell hordoznia.
Hogyan működik valójában a %C3%A9 dekódolása é-vé?
Vegyük a kódolt lekérdezési karakterláncot ?q=caf%C3%A9&lang=fr. A dekódolás ?q=café&lang=fr-t eredményez. Itt a bájtonkénti lépések:
- Bemenet:
?q=caf%C3%A9&lang=fr - Kimenet:
?q=café&lang=fr
%C3→ bájt0xC3(bináris11000011) — egy 2 bájtos UTF-8 szekvencia vezető bájtja.%A9→ bájt0xA9(bináris10101001) — a folytató bájt. Kombinálva aC3 A9az U+00E9 UTF-8 kódolása, amié.- A
?,=és&karakterek érintetlenül maradnak, mert strukturálisak — elhatárolják a lekérdezést és a kulcs/érték párokat. A szó szerinticafis áthalad, mivel a kisbetűs ASCII betűk a nem fenntartott készlethez tartoznak.
Mi a különbség a decodeURIComponent és a decodeURI között?
A JavaScript két beépített dekódolót tesz elérhetővé, és ezek összekeverése az egyik leggyakoribb URL-kezelési hiba:
- A
decodeURIComponent(str)minden százalékosan kódolt szekvenciát dekódol, beleértve a fenntartott karaktereket is, mint a&,=,?,/és#. Használd egyedi lekérdezési karakterlánc értékekre vagy útvonalszegmensekre — soha ne egy teljes URL-en. - A
decodeURI(str)szándékosan konzervatív: kihagyja a fenntartott karaktereket. Ha%26-t adsz neki, a szó szerinti%26karakterláncot adja vissza, nem&-et. Teljes URI-kra való, ahol azt szeretnéd, hogy a struktúra túléljen egy oda-vissza utat.
Ökölszabály: ha a karakterlánc egy URL darabja (egyetlen paraméter, egy töredék, egy kódolt fájlnév), nyúlj a decodeURIComponent-hoz. Ez az eszköz úgy viselkedik, mint a decodeURIComponent — minden %XX szekvencia a bemenetedben dekódolásra kerül, beleértve a fenntartott karaktereket is.
Egy URL dekódolása az, ahogy elolvasod, mit tartalmaz valójában. Illessz be egy kódolt karakterláncot fent, és minden %XX szekvencia visszaalakul a karakterévé a böngésződben, így hibakereshetsz egy lekérdezési paramétert, ellenőrizhetsz egy OAuth átirányítást, vagy visszanyerhetsz egy ékezetes fájlnevet anélkül, hogy bármit szerverre küldenél.