URL kódoló és dekódoló

Százalékos kódolás URL-ekhez és query stringekhez, kódolt URL-ek dekódolása, és bármely URL felbontása részeire, dekódolt query paraméterekkel.

A böngésződben futNincs regisztrációNincs feltöltés

Kódolt

Hogyan használd: URL kódolás / dekódolás

  1. Válaszd a Kódolás vagy a Dekódolás módot.
  2. Kódoláskor válaszd a Komponens módot egyetlen query értékhez vagy útvonalszegmenshez, a Teljes URL módot az URL szerkezetének megtartásához, vagy az Űrlapadat módot az application/x-www-form-urlencoded formátumhoz.
  3. Illeszd be a szöveget. Az eredmény azonnal megjelenik; a hibás escape-eket pozíciójukkal együtt jelezzük.
  4. Illessz be egy teljes URL-t az URL-elemzőbe, hogy lásd a hostját, útvonalát, fragmentjét és minden dekódolt query paraméterét.

Mi az URL-kódolás?

Az URL-ek csak az ASCII karakterek korlátozott körét tartalmazhatják (RFC 3986). Minden mást, beleértve a szóközöket, az ékezetes betűket és a különleges jelentésű karaktereket, mint az &, a ? és a #, minden UTF-8 bájt esetén egy százalékjel és két hexadecimális számjegy jelöl. A szóközből %20, az é betűből %C3%A9 lesz.

encodeURIComponent vagy encodeURI

FüggvényVáltozatlanul hagyjaMire való
encodeURIComponentA-Z a-z 0-9 - _ . ~Egyetlen query érték, útvonalszegmens vagy paraméternév
encodeURIEzeket is: : / ? # [ ] @ ! $ & ' ( ) * + , ; =Teljes URL, amelynek a szerkezete nem sérülhet

Az encodeURI használata egy query értékre klasszikus hiba: az értéken belüli & nem kap escape-et, így kettévágja a paramétert. Az eszköz Komponens módja a ! ' ( ) * karaktereket is escape-eli a szigorú RFC 3986 megfelelés érdekében.

%20 vagy + a szóközhöz?

Útvonalakban a szóköz csak %20 lehet. HTML-űrlapok elküldésekor (application/x-www-form-urlencoded) és sok query stringben a szóközt + jelöli. Dekódoláskor űrlapadatokhoz kapcsold be A + szóköznek számít opciót, és kapcsold ki, ha a szó szerinti pluszjel fontos, például a jane+test@example.com címben.

Gyakran ismételt kérdések

Miért kapok „Hibás escape” hibát dekódoláskor?
A % jelet pontosan két hexadecimális számjegynek kell követnie. A szó szerinti százalékjelet, mint az „50% kedvezmény” kifejezésben, %25-ként kellett volna kódolni. A hiba megmutatja a hibás sorozat pozícióját.
Mit jelent az „Érvénytelen UTF-8 bájtsorozat”?
A bájtok nem UTF-8 kódolásúak, gyakran azért, mert a szöveget egy Latin-1-et használó régi rendszer állította elő (például %E9 az é betűhöz %C3%A9 helyett), vagy a stringet egy karakter közepén vágták el.
A teljes URL-t kódoljam, vagy csak a paramétereket?
Minden paraméternevet és -értéket külön kódolj komponens kódolással, majd fűzd össze őket = és & jellel. Ha egy teljes URL-t komponens módban kódolnál, a :// is escape-et kapna, és az URL elromlana.
Gond a dupla kódolás?
Igen. Egy már kódolt string újrakódolása a %20 értékből %2520-at csinál. Ha %25 utáni hexadecimális számjegyeket látsz, az értéket valószínűleg kétszer kódolták. Dekódold kétszer az eredeti visszaállításához.

Kapcsolódó eszközök