URL kodavimas ir dekodavimas
Nemokamas URL koduotuvas ir dekoderis. Užkoduok užklausos parametrus ar visus URL, dekoduok %XX sekas ir apdorok + kaip tarpą. Veikia tavo naršyklėje.
Kaip naudotis URL koduotuvu ir dekoderiu
- Pasirink Koduoti, kad tekstą paverstum URL tinkama forma, arba Dekoduoti, kad procentais užkoduotą tekstą grąžintum į skaitomus simbolius.
- Koduojant pasirink Režimas: Dalis vienai reikšmei (pavyzdžiui, užklausos parametrui ar kelio segmentui) arba Visas URL, kad užkoduotum visą adresą išsaugant jo struktūrą.
- Dekoduojant duomenis iš HTML formos ar užklausos eilutės, įjunk + laikyti tarpu, kad
+ženklai taptų tarpais. - Įklijuok tekstą ir nukopijuok rezultatą. Jei procentinė seka netinkama, įrankis praneša klaidą, o ne spėlioja.
Kas yra URL kodavimas?
URL gali turėti tik ribotą ASCII simbolių rinkinį. Kai kurie simboliai, pavyzdžiui, /, ?, #, & ir =, yra rezervuoti, nes jie skiria adreso dalis: kelią, užklausos eilutę ir fragmentą. Kiti, pavyzdžiui, tarpai, kabutės, raidės su diakritiniais ženklais ar jaustukai, tiesiog neleidžiami. URL kodavimas, dar vadinamas procentiniu kodavimu, išsprendžia abi problemas, kiekvieną problemišką baitą pakeisdamas %, po kurio eina du šešioliktainiai skaitmenys.
Tekstas pirmiausia paverčiamas UTF-8 baitais, ir kiekvienas baitas koduojamas atskirai. Tarpas tampa %20, ampersandas tampa %26, é (du baitai UTF-8) tampa %C3%A9, o jaustukas 😀 (keturi baitai) tampa %F0%9F%98%80. Nereservuotų simbolių, t. y. raidžių, skaitmenų ir - _ . ~, niekada nereikia koduoti. Lietuviškos raidės, pavyzdžiui, ą, š ar ž, taip pat užkoduojamos kaip du baitai: š tampa %C5%A1.
Dalies ir viso URL režimai
Tinkamo režimo pasirinkimas yra svarbiausias sprendimas, o klaida čia yra klasikinis klaidų šaltinis.
Dalies režimas veikia kaip JavaScript encodeURIComponent. Jis užkoduoja kiekvieną rezervuotą simbolį, todėl rezultatą saugu dėti į vieną URL dalį. Naudok jį užklausos parametrų reikšmėms, kelio segmentams ar viskam, ką įvedė naudotojas. Pavyzdžiui, paieškos frazė rock & roll tampa rock%20%26%20roll. Jei & neužkoduotum, serveris roll perskaitytų kaip naujo parametro pradžią.
Viso URL režimas veikia kaip encodeURI. Jis daro prielaidą, kad įvestis jau yra pilnas adresas, ir išsaugo struktūrą teikiančius simbolius, pavyzdžiui, : / ? # & ir =, o užkoduoja tarpus ir ne ASCII simbolius. Naudok jį adresui, pavyzdžiui, https://example.com/café menu?q=tea, sutvarkyti į https://example.com/caf%C3%A9%20menu?q=tea. Nenaudok jo pavienėms reikšmėms: & reikšmės viduje liktų neužkoduotas ir sugadintų užklausos eilutę.
Gera taisyklė: kurk URL iš dalių, kiekvieną reikšmę koduok dalies režimu, o viso URL režimą naudok tik jau sudėtiems adresams, kuriuos gauni.
Ženklas + ir formos kodavimas
HTML formos, siunčiamos su application/x-www-form-urlencoded, tarpus koduoja kaip +, o ne %20. Todėl paieškos URL dažnai atrodo kaip ?q=hello+world. Standartinis procentinis dekodavimas + palieka nepakeistą, nes kelyje pliusas yra tiesiog pliusas. Dekoduojant užklausos eilutę ar formos duomenis, įjunk + laikyti tarpu, kad gautum hello world. Kelių ir reikšmių, kuriose svarbus pažodinis +, pavyzdžiui, telefono numerių ar Base64 duomenų, atveju palik išjungtą. Tikras pliuso ženklas formos duomenyse siunčiamas kaip %2B, todėl abiem atvejais dekoduojamas teisingai.
Privatumas
Kodavimas ir dekodavimas vyksta tik tavo naršyklėje. Niekas, ką įklijuoji, įskaitant URL, kuriuose gali būti žetonų, sesijų ID ar asmens duomenų, nesiunčiama į serverį ir nesaugoma.
Dažnai užduodami klausimai
Kodėl dekodavimas nepavyksta su klaida „netinkamas“?
Po % privalo eiti lygiai du šešioliktainiai skaitmenys, o gauti baitai turi sudaryti tinkamą UTF-8. Eilutės, tokios kaip 100%, %G1 ar nutrauktos sekos, pavyzdžiui, %E2%82, negali būti patikimai dekoduojamos, todėl įrankis praneša apie problemą, o ne pateikia neteisingą tekstą. Norint įtraukti pažodinį procento ženklą, užkoduok jį kaip %25.
Kuo skiriasi %20 ir +?
Abu gali reikšti tarpą, bet skirtinguose kontekstuose. %20 tinka bet kurioje URL vietoje. + reiškia tarpą tik formos kodavimo užklausos eilutėse; kitur tai pažodinis pliuso ženklas.
Ar visą URL turėčiau koduoti dalies režimu?
Tik jei visas URL pats yra reikšmė kitame URL, pavyzdžiui, parametras redirect=. Tokiu atveju dalies režimas yra būtent tai, ko reikia: https://a.com/?x=1 tampa https%3A%2F%2Fa.com%2F%3Fx%3D1.
Kodėl mano tekstas užkoduotas du kartus?
Dvigubas kodavimas įvyksta, kai jau užkoduotas tekstas užkoduojamas dar kartą, ir %20 tampa %2520. Dekoduok vieną kartą, kad patikrintum, ir įsitikink, kad kiekviena reikšmė koduojama tik tą akimirką, kai ji įterpiama į URL.
Ar URL kodavimas slepia ar saugo duomenis?
Ne. Procentinis kodavimas visiškai grįžtamas ir jokio saugumo neteikia. Jautrios reikšmės URL gali patekti į naršyklės istoriją ir serverių žurnalus, todėl slaptų duomenų į URL apskritai nedėk.
Susiję įrankiai
- Base64 kodavimas ir dekodavimas Nemokamas Base64 kodavimas ir dekodavimas su pilna UTF-8 parama ir base64url parinktimi. Veikia tavo naršyklėje, nieko neįkeliama.
- JSON formatuotojas ir tikrintuvas Nemokamas JSON formatuotojas ir tikrintuvas, kuris naršyklėje sutvarko, minimizuoja ir tikrina JSON, o sintaksės klaidas nurodo su eilute ir stulpeliu.