Utilia

URL-kódoló és -dekódoló

Ingyenes URL-kódoló és -dekódoló: kódolj paramétereket vagy teljes URL-eket, fejtsd vissza a %XX sorozatokat, és kezeld a + jelet szóközként. Böngészőben fut.

Mód

Hogyan használd az URL-kódolót és -dekódolót

  1. Válaszd a Kódolás gombot, ha a szöveget URL-barát alakra szeretnéd alakítani, vagy a Dekódolás gombot, ha a százalékkódolt szöveget olvasható karakterekké.
  2. Kódoláskor válassz módot: Összetevő egyetlen értékhez (például lekérdezési paraméterhez vagy útvonalszegmenshez), vagy Teljes URL egy teljes cím kódolásához a szerkezetének megtartásával.
  3. HTML-űrlapból vagy lekérdezési karakterláncból származó adat dekódolásakor kapcsold be A + jel szóköznek számít opciót, hogy a + jelek szóközzé váljanak.
  4. Illeszd be a szöveget, és másold ki az eredményt. Ha egy százalékos sorozat hibás, az eszköz hibát jelez ahelyett, hogy találgatna.

Mi az az URL-kódolás?

Az URL-ek csak az ASCII-karakterek egy korlátozott készletét tartalmazhatják. Egyes karakterek, például a /, ?, #, & és = fenntartottak, mert a cím részeit választják el: az útvonalat, a lekérdezési karakterláncot és a töredéket. Mások, például a szóköz, az idézőjelek, az ékezetes betűk vagy az emojik, egyszerűen nem megengedettek. Az URL-kódolás, más néven százalékkódolás, mindkét problémát úgy oldja meg, hogy minden problémás bájtot egy % jel és két hexadecimális számjegy helyettesít.

A szöveget először UTF-8 bájtokká alakítják, és minden bájtot külön kódolnak. A szóköz %20, az és jel %26 lesz, az é (UTF-8-ban két bájt) %C3%A9, a 😀 emoji (négy bájt) pedig %F0%9F%98%80. A kódolatlan, vagyis nem fenntartott karaktereket, azaz a betűket, számjegyeket és a - _ . ~ jeleket soha nem kell kódolni.

Összetevő mód és teljes URL mód

A megfelelő mód kiválasztása a legfontosabb döntés, és a rossz választás a hibák klasszikus forrása.

Az Összetevő mód úgy működik, mint a JavaScript encodeURIComponent függvénye. Minden fenntartott karaktert kódol, így az eredmény biztonságosan elhelyezhető az URL egyetlen részében. Használd lekérdezési paraméterek értékeihez, útvonalszegmensekhez vagy bármihez, amit egy felhasználó begépelt. Például a rock & roll keresőkifejezésből rock%20%26%20roll lesz. Ha nem kódolnád az & jelet, a szerver a roll részt egy új paraméter kezdetének olvasná.

A Teljes URL mód úgy működik, mint az encodeURI. Feltételezi, hogy a bemenet már egy teljes cím, és megtartja a szerkezetet adó karaktereket, például a : / ? # & és = jeleket, miközben a szóközöket és a nem ASCII karaktereket kódolja. Használd egy olyan cím rendbetételére, mint a https://example.com/café menu?q=tea, amelyből https://example.com/caf%C3%A9%20menu?q=tea lesz. Ne használd egyes értékekre: egy értéken belüli & kódolatlan maradna, és eltörné a lekérdezési karakterláncot.

Jó ökölszabály: az URL-eket részekből építsd fel, minden értéket összetevő módban kódolj, a teljes URL módot pedig csak a már összeállított formában kapott címekhez használd.

A + jel és az űrlapkódolás

Az application/x-www-form-urlencoded típussal elküldött HTML-űrlapok a szóközöket %20 helyett + jellel kódolják. Ezért néznek ki a keresési URL-ek gyakran úgy, hogy ?q=hello+world. A szabványos százalékdekódolás a + jelet változatlanul hagyja, mert egy útvonalban a plusz csak plusz. Lekérdezési karakterlánc vagy űrlapadat dekódolásakor kapcsold be A + jel szóköznek számít opciót, hogy hello world legyen belőle. Hagyd kikapcsolva útvonalaknál és olyan értékeknél, ahol egy szó szerinti + számít, például telefonszámoknál vagy Base64-adatoknál. A valódi plusz jel az űrlapadatokban %2B formában kerül elküldésre, ezért mindkét esetben helyesen dekódolódik.

Adatvédelem

A kódolás és a dekódolás teljes egészében a böngésződben fut. Semmi, amit beillesztesz, beleértve a tokeneket, munkamenet-azonosítókat vagy személyes adatokat tartalmazó URL-eket, nem kerül elküldésre szervernek vagy tárolásra.

Gyakori kérdések

Miért sikertelen a dekódolás „hibás” hibaüzenettel?

A % jelet pontosan két hexadecimális számjegynek kell követnie, és a keletkező bájtoknak érvényes UTF-8-at kell alkotniuk. Az olyan karakterláncokat, mint a 100%, a %G1 vagy egy csonka sorozat, például %E2%82, nem lehet megbízhatóan dekódolni, ezért az eszköz a hibát jelzi, ahelyett hogy helytelen szöveget állítana elő. Szó szerinti százalékjel beírásához kódold %25 formában.

Mi a különbség a %20 és a + között?

Mindkettő jelenthet szóközt, de különböző környezetben. A %20 az URL-ben mindenhol érvényes. A + csak az űrlapkódolású lekérdezési karakterláncokban jelent szóközt; máshol szó szerinti plusz jel.

Kódoljam egy teljes URL-t összetevő módban?

Csak akkor, ha a teljes URL maga is egy érték egy másik URL-ben, például egy redirect= paraméterben. Ilyenkor az összetevő mód pontosan megfelelő: a https://a.com/?x=1 címből https%3A%2F%2Fa.com%2F%3Fx%3D1 lesz.

Miért van kétszer kódolva a szövegem?

A dupla kódolás akkor történik, ha már kódolt szöveget kódolsz újra, így a %20 %2520 lesz. Dekódolj egyszer az ellenőrzéshez, és ügyelj arra, hogy minden értéket csak abban a pillanatban kódolj, amikor beszúrod az URL-be.

Elrejti vagy védi az adatokat az URL-kódolás?

Nem. A százalékkódolás teljesen visszafordítható, és semmilyen biztonságot nem nyújt. Az URL-ekben lévő érzékeny értékek a böngészési előzményekben és a szervernaplókban köthetnek ki, ezért titkokat egyáltalán ne tegyél URL-ekbe.