Nemokamas konverteris

URL kodavimo priemonė / Dekoderis

Iškart užkoduokite ir iškoduokite URL ir URI komponentus naršyklėje. Nemokamas, privatus ir nereikia įkelti.

Arba

Apie šį įrankį

URL kodavimas (formaliai procentų kodavimas, apibrėžtas RFC 3986) verčia simbolius, turinčius ypatingą reikšmę URL – tarpai, pasvirieji brūkšniai, ampersandai, maišos ženklai – į saugią formą, naudojant procentinius ženklus ir šešioliktainius skaitmenis. Tarpo simbolis tampa %20 (arba + forma koduotuose kontekstuose), ampersandas tampa %26 ir pan. Be šios koduotės specialieji simboliai būtų interpretuojami kaip URL sintaksė, o ne kaip pažodiniai duomenys, sulaužantys URL arba sukeliantys nenumatytą elgesį.

Yra dvi susijusios, bet skirtingos koduotės. Standartinė URL komponento koduotė naudoja %-escape simbolius viskam, kas yra už nerezervuoto simbolių rinkinio: A-Z, a-z, 0-9, brūkšnelis, apatinis brūkšnys, taškas, tildė. Forma užkoduotas variantas (application/x-www-form-urlencoded) papildomai traktuoja tarpus kaip pliuso ženklus ir kai kuriems kitiems simboliams naudoja skirtingas taisykles. „JavaScript“ encodeURIComponent naudoja griežtą komponentų kodavimą; encodeURI naudoja leistinesnę formą, kuri išsaugo URL struktūros simbolius.

Šis įrankis siūlo ir kodavimą, ir dekodavimą. Kodavimo režimas apvynioja kiekvieną simbolį, kurį reikia pabėgti į %HH formatą; dekodavimo režimas apverčia transformaciją. Abu veikia tik jūsų naršyklėje, naudojant įtaisytąsias JavaScript URL funkcijas, todėl jokie duomenys niekur nesiunčiami.

Kodėl koduoti arba iššifruoti URL

Bet kada į URL įtraukiami duomenys – užklausos eilutės parametrai, kelio segmentai, kuriuose yra vartotojo įvestis, peradresavimo tikslai – reikalinga tinkama koduotė. Nepavykus užkoduoti, sukuriami URL, kurie nutrūksta pasirodžius specialiiesiems simboliams, nutekina parametrų ribas į užklausos eilutes (&x=1 paverčia atskiru parametru) arba žiniatinklio serveriai užblokuojami kaip netinkamai suformuotos užklausos.

Dekodavimas yra atvirkštinis: pradinių duomenų ištraukimas iš užkoduoto URL. Naršyklės adresų juostose URL dažnai rodomi užkoduota forma; dekodavimas atskleidžia, kas iš tikrųjų buvo numatyta. Registravimas, derinimas ir saugos analizė – visa tai naudinga iš dekoduotų URL, kuriuose rodomi pirminiai parametrai ir keliai.

Kaip naudoti

Įklijuokite eilutę, pasirinkite kryptį.

  1. Pasirinkite koduoti arba dekoduoti: Kodavimas apvynioja nesaugius simbolius %HH formatu. Dekodavimas apverčia %HH pabėga atgal į pažodinius simbolius.
  2. Pridėti įvesties tekstą: Įklijuokite eilutę, kad galėtumėte užkoduoti arba iššifruoti. Kodavimui tai paprastai yra tiesioginė reikšmė su tarpais, specialiais simboliais arba ne ASCII turiniu. Dekodavimui tai yra URL arba URL komponentas, kuriame yra %HH pabėgimų.
  3. Konvertuoti: Įrankis taiko encodeURIComponent arba decodeURIComponent. Užkoduotą išvestį saugu įterpti į URL; dekoduota išvestis yra pradinė pažodinė reikšmė.
  4. Nukopijuokite arba atsisiųskite: Naudokite rezultatą visur, kur jo reikia. Užkoduotos reikšmės telpa į URL; iššifruotos reikšmės atskleidžia pirminius duomenis.

Bendro naudojimo atvejai

Techninės detalės

encodeURIComponent užkoduoja kiekvieną simbolį, esantį už nerezervuoto rinkinio [A-Za-z0-9-_.~]. Tarpai tampa %20, plius ženklai tampa %2B, lygybės ženklai tampa %3D ir pan. Simboliai, esantys už ASCII ribų, pirmiausia užkoduojami UTF-8, o po to kiekvienas baitas yra pašalinamas.

encodeURI yra leistinesnis ir skirtas visiems URL, o ne komponentams. Ji neaplenkia /, ?, &, =, # ir keleto kitų, nes šie simboliai turi URL sintaksės reikšmę. Norint įterpti vartotojo duomenis į URL, encodeURIComponent beveik visada yra tinkamas pasirinkimas.

„decodeURIComponent“ apverčia %-pabėgimus, patvirtindamas, kad kiekvienas pabėgimas yra gerai suformuotas ir kad gauti baitai sudaro galiojantį UTF-8. Netinkamai suformuota įvestis sukelia klaidą, o ne šiukšles.

Geriausia praktika

Dažnai užduodami klausimai

Kuriems simboliams reikalinga URL koduotė?
Rezervuoti simboliai (&, =, ?, #, /, :, @) ir nesaugūs simboliai (tarpai, <, >, {, }, |, ^, ~, [, ], `) turi būti užkoduoti. Raidiniai ir skaitiniai simboliai ir -_.~ yra saugūs ir jų nereikia koduoti.
Kuo skiriasi encodeURI ir encodeURIComponent?
encodeURI užkoduoja visą URL, bet išsaugo rezervuotus simbolius (://?#). encodeURIComponent koduoja viską, išskyrus -_.!~*'() — naudokite jį užklausos parametrų reikšmėms. Šis įrankis siūlo abu režimus.
Kaip URL užkoduojami tarpai?
Tarpai gali būti koduojami kaip %20 (standartinė procentinė koduotė) arba + (formos kodavimas). %20 tinka URL keliams, o + yra naudojamas užklausų eilutėse iš HTML formų. Šis įrankis pagal numatytuosius nustatymus naudoja %20.
Ar galiu užkoduoti unikodo simbolius?
Taip. Unikodo simboliai pirmiausia užkoduojami iki UTF-8 baitų, tada kiekvienas baitas užkoduojamas procentais. Pavyzdžiui, „日“ tampa %E6%97%A5 (trys UTF-8 baitai, kurių kiekvienas užkoduotas procentais).
Ar turėčiau naudoti encodeURI ar encodeURIComponent?
Beveik visada encodeURIComponent. Naudokite encodeURI tik tuo atveju, jei turite visą URL ir norite išsaugoti jo struktūrą – paprastai tai retai, nes vis tiek kuriate URL iš komponentų.
Ar mano duomenys įkeliami į serverį?
Ne. URL kodavimas ir iškodavimas vyksta tik jūsų naršyklėje.
Ar jis tvarko „Unicode“ jaustukus?
Taip. Jaustukai yra kelių baitų UTF-8 sekos; koduotuvas sukuria %-išeitų baitų grandinę, kurią dekoderiai teisingai surenka atgal į pradinį jaustuką.
Ką daryti, jei mano įvestyje yra %HH atrodančių eilučių, kurios iš tikrųjų nėra užkoduotos?
Kodavimas kiekvieną % paverčia į %25, o likusiems iš naujo taikomas pabėgimas. Dekoduojant griežtą įvestį, klaidingai suformuotų pabėgimų metu atsiranda klaidų; dviprasmiškai atrodančios eilutės gali būti neteisingai iškoduotos.