tigtools

URL-kódoló / dekódoló

Kódoljon szöveget URL-ben való használathoz, vagy alakítsa vissza a %20-stílusú escape-kódokat olvasható szöveggé. Válassza a Komponens lehetőséget egyetlen értékhez, vagy a Teljes URL lehetőséget egy teljes címhez.

Böngészőben fut Regisztráció nélkül

Irány
Mit kódol?

A Komponens (encodeURIComponent) mód mindent escape-el, kivéve a betűket, számjegyeket és a - _ . ! ~ * ' ( ) karaktereket. Használja egyetlen lekérdezési értékhez, űrlapmezőhöz vagy útvonalszegmenshez.

Használata

  1. Válassza a Kódolás vagy a Dekódolás lehetőséget.
  2. Válassza a Komponens lehetőséget egyetlen értékhez (például egy lekérdezési paraméterhez), vagy a Teljes URL lehetőséget egy teljes címhez.
  3. Gépelje be vagy illessze be a szöveget. Az eredmény azonnal megjelenik jobb oldalon (telefonon alul).
  4. Másolja ki az eredményt, vagy a „Kimenet használata bemenetként” lehetőséggel fordítsa meg a műveletet, és ellenőrizze az oda-vissza átalakítást.

Hogyan működik

Az URL-ek csak az ASCII-karakterek egy korlátozott készletét tartalmazhatják. Minden más – például szóközök, ékezetes betűk és emojik – százalékos kódolással írandó: a karaktert UTF-8 bájtokká alakítja a rendszer, és minden bájt % jelből, majd két hexadecimális számjegyből álló kóddá válik. A szóköz %20 lesz, az é %C3%A9, a € pedig %E2%82%AC.

A Komponens mód a JavaScript encodeURIComponent és decodeURIComponent függvényeit használja. Minden olyan karaktert kódol, amelynek különleges jelentése van egy URL-ben, beleértve a / ? # & = + : és @ karaktereket is, így az eredmény biztonságosan beilleszthető egy lekérdezési értékbe vagy egyetlen útvonalszakaszba. Csak az A–Z, a–z, 0–9 és a - _ . ! ~ * ' ( ) karaktereket hagyja változatlanul.

A Teljes URL mód az encodeURI és decodeURI függvényeket használja. Feltételezi, hogy a bemenet már egy teljes URL, és a fenntartott karaktereket ( ; , / ? : @ & = + $ # ) érintetlenül hagyja, így a cím működőképes marad. Dekódoláskor a decodeURI ezeknek a fenntartott karaktereknek a kódjait is érintetlenül hagyja: a %2F %2F marad, mert ha / jellé alakulna, az megváltoztatná az URL jelentését.

Az űrlap-adat opció az application/x-www-form-urlencoded szabványt követi, amelyet a böngészők HTML-űrlapok elküldésekor használnak: a szóköz + jelként írandó a %20 helyett. Ha ezzel az opcióval dekódol, minden + szóközzé alakul; a valódi pluszjelet ilyenkor %2B formában kell írni.

Az érvénytelen bemenet soha nem kerül eldobásra. Ha a % jelet nem két hexadecimális számjegy követi, vagy egy kódsorozat nem alkot érvényes UTF-8-at, az eszköz megmutatja, hol van a hiba, és megtartja a szöveget, hogy javíthassa.

Példák

Érték beillesztése lekérdezési karakterláncba

Ha a https://example.com/search?q=… címen a „Rock & Roll” kifejezésre szeretne keresni, csak az értéket kódolja Komponens módban: Rock%20%26%20Roll. Kódolás nélkül a & lezárná a q paramétert, és új paramétert kezdene „ Roll” néven.

Szóközöket és ékezeteket tartalmazó URL javítása

Teljes URL módban a https://example.com/menu/crème brûlée.html címből https://example.com/menu/cr%C3%A8me%20br%C3%BBl%C3%A9e.html lesz. A perjelek és a kettőspont változatlanok maradnak, így a hivatkozás továbbra is működik.

Naplózott űrlapadatok olvasása

Egy szervernaplóban ez szerepel: name=Jane+Doe&city=S%C3%A3o+Paulo. Dekódolja Komponens módban a „+ szóközként kezelése” bekapcsolásával, és ezt kapja: name=Jane Doe&city=São Paulo.

Gyakori kérdések

Mi a különbség az encodeURI és az encodeURIComponent között?

Az encodeURIComponent kódolja az URL-részeket elválasztó karaktereket (/ ? # & = + : @ és mások), ezért egy URL egyetlen darabjához való. Az encodeURI megtartja ezeket a karaktereket, ezért teljes URL-hez való. Gyakori hiba, ha lekérdezési értékre encodeURI-t használnak: az értékben lévő & vagy = nem kódolódna, és tönkretenné a lekérdezési karakterláncot.

A szóköz %20 vagy + legyen?

A URL elérési útjában a szóköz mindig %20. A lekérdezési karakterláncban mindkettő előfordulhat: a %20 mindenhol érvényes, a + pedig csak űrlapkódolású adatokban (application/x-www-form-urlencoded) jelent szóközt, vagyis ahogy a HTML-űrlapok és sok szerveroldali keretrendszer olvassa a lekérdezési karakterláncokat. Ha bizonytalan, használja a %20-at.

Miért kapok hibát dekódoláskor?

A dekódolás sikertelen, ha a % jelet nem két hexadecimális számjegy követi (például „50% off”), vagy ha a kódolt bájtok nem érvényes UTF-8 szöveget alkotnak; ez általában azt jelenti, hogy a szöveget régebbi karakterkészlettel, például Latin-1-gyel kódolták (az é %E9-ként, nem pedig %C3%A9-ként). A hibaüzenet megmutatja a probléma helyét.

Miért nem változott a %2F perjellé Teljes URL módban?

A decodeURI szándékosan nem dekódolja a fenntartott karakterek, például a / ? # & és = escape-kódjait, mert a dekódolásuk megváltoztathatná a URL részekre bontását. A Komponens móddal minden escape-szekvenciát dekódolhat.

Mely karakterek nem kerülnek kódolásra?

Mindkét mód változatlanul hagyja a következő karaktereket: A–Z, a–z, 0–9, valamint - _ . ! ~ * ' ( ). A Teljes URL mód emellett változatlanul hagyja a ; , / ? : @ & = + $ és # karaktereket is.

Adatvédelem

A kódolás és a dekódolás teljes egészében az Ön böngészőjében fut, a beépített JavaScript-függvényekkel. A szövegek és URL-címek nem kerülnek feltöltésre, tárolásra, és nem szerepelnek az analitikában.