Használata
- Válassza a Kódolás vagy a Dekódolás lehetőséget.
- 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.
- Gépelje be vagy illessze be a szöveget. Az eredmény azonnal megjelenik jobb oldalon (telefonon alul).
- 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.