URL Encoder dhe Decoder
Për një vlerë query ose një segment shtegu. Kodon gjithçka përveç shkronjave, shifrave dhe - _ . ! ~ * ' ( ), njëlloj si encodeURIComponent.
Ngjitni një URL më lart. Pjesët dhe parametrat e tij shfaqen këtu, gati për ndryshim.
Parametrat e query
Ky URL nuk ka parametra query.
Parametrat e fragmentit
Gjithçka punon në shfletuesin tuaj dhe asgjë që ngjitni nuk ngarkohet. Kjo ka rëndësi, sepse URL-të shpesh mbartin tokenë dhe ID sesionesh.
URL encode dhe decode të tekstit online ndërsa shkruani: mjeti i kthen hapësirat, shkronjat me diakritikë dhe simbole si & ose ? në sekuenca të koduara me përqindje, si %20, dhe i kthen përsëri në tekst të lexueshëm. Skeda e dytë është një analizues URL. Ai e ndan çdo adresë në protokoll, host, shteg dhe parametra query që mund t’i ndryshoni, t’i çaktivizoni ose t’i pastroni nga etiketat e gjurmimit, dhe e shkruan përsëri URL-në të koduar saktë. Gjithçka ndodh në shfletuesin tuaj.
Si të bëni URL encode dhe decode të tekstit
- Shkruani ose ngjitni në fushën e skedës Kodo / Dekodo. Rezultati përditësohet me çdo shkronjë.
- Zgjidhni Drejtimi. Kodo e bën tekstin të sigurt për një URL, Dekodo e kthen
caf%C3%A9%20au%20laitnëcafé au lait. Nëse ngjitni në fushën e zbrazët tekst me sekuenca si%20, mjeti kalon vetë te Dekodo (Kodoje në vend të kësaj kthen mbrapsht). Teksti i thjeshtë që duhet koduar, i ngjitur në mënyrën Dekodo, e kalon te Kodo në të njëjtën mënyrë, me Dekodoje në vend të kësaj. - Kur kodoni, zgjidhni te Kodo si çfarë është teksti (shihni pjesën tjetër). Opsioni i parazgjedhur, Vlerë parametri, është i duhuri për një vlerë të vetme query.
- Kopjo e vendos rezultatin në clipboard. Shkëmbe e kalon rezultatin te hyrja dhe ndërron drejtimin. Kjo është një provë e shpejtë e ciklit të plotë: dekodimi i asaj që sapo kodoni duhet t’ju kthejë tekstin origjinal.
Çdo shenjë që mjeti e ka ndryshuar theksohet në rezultat. Kaloni miun mbi të për të parë shenjën, pikën e saj kodike Unicode dhe bajtet, për shembull é U+00E9 %C3%A9. Poshtë fushave shihni numrin e Shenja, Bajte UTF-8 dhe Shenja të koduara (ose Shenja të dekoduara). Provo një shembull ngarkon fjalinë Çmimi: 50 % zbritje, çaj & qumësht? Po!, e cila ka 39 shenja por 42 bajte UTF-8, sepse çdo shkronjë latine me diakritikë (Ç, ç dhe ë) zë dy bajte.
Kur kodoni, Çdo rresht veç e veç kodon çdo rresht më vete dhe i ruan ndarjet e rreshtave, gjë që i shkon një liste vlerash ose lidhjesh. Pa të, edhe ndarja e rreshtit kodohet dhe bëhet %0A. Kur teksti është një URL me parametra, mjeti ofron Ndaje në pjesë, që e hap adresën te skeda e analizuesit.
URL encode për një parametër, një URL të plotë ose të dhëna formulari
Jo çdo shenjë duhet koduar kudo. Një vizë e pjerrët ndan dosjet në një shteg, por brenda vlerës së një parametri është thjesht e dhënë, prandaj rezultati i duhur varet nga ajo që kodoni. Kodo si ofron katër mënyra:
- Vlerë parametri punon si
encodeURIComponenti JavaScript dhe i shkon një vlere query ose një segmenti shtegu. Kodon gjithçka përveç shkronjave, shifrave dhe- _ . ! ~ * ' ( ), prandaj një&,=,/ose?brenda vlerës nuk mund ta prishë URL-në. Kodimi icafé & crèmejepcaf%C3%A9%20%26%20cr%C3%A8me, gati për t’u vendosur pasq=. - URL i plotë është për një adresë të kompletuar që duhet vetëm pastruar. Kodon hapësirat, shenjat jo-ASCII, shenjat e kontrollit, apostrofin e kundërt dhe
" < > \ ^ { | }, dhe ruan gjithçka që i jep një URL-je strukturën:: / ? # [ ] @ ! $ & ' ( ) * + , ; =. Kështuhttps://example.com/search?q=café au lait&lang=frbëhethttps://example.com/search?q=caf%C3%A9%20au%20lait&lang=fr. Sekuencat që janë koduar tashmë mbeten siç janë, dhe një%i vetmuar bëhet%25. Këtu ndryshon ngaencodeURIi JavaScript, që e kthen një%20ekzistues në%2520dhe kodon kllapat katrore të një adrese IPv6 sihttp://[2001:db8::1]:8080/. - Të dhëna formulari ndjek formatin application/x-www-form-urlencoded (në anglisht), që e prodhojnë formularët HTML dhe
URLSearchParams. Hapësira bëhet+, dhe vetëm shkronjat, shifrat dhe* - . _mbeten të pakoduara, prandaj! ' ( ) ~kodohen gjithashtu. - RFC 3986 strikt lë të pakoduara vetëm shenjat e lira të RFC 3986 (në anglisht): shkronjat, shifrat dhe
- . _ ~. OAuth 1.0 (RFC 5849) dhe AWS Signature Version 4 kërkojnë pikërisht këtë formë, sepse një nënshkrim përputhet vetëm kur të dyja anët e kodojnë!ose*njëlloj.
Të njëjtat shenja në secilën mënyrë:
| Shenja | Vlerë parametri | URL i plotë | Të dhëna formulari | RFC 3986 strikt |
|---|---|---|---|---|
| hapësirë | %20 | %20 | + | %20 |
& | %26 | & | %26 | %26 |
/ | %2F | / | %2F | %2F |
+ | %2B | + | %2B | %2B |
~ | ~ | ~ | %7E | ~ |
! | ! | ! | %21 | %21 |
* | * | * | * | %2A |
é | %C3%A9 | %C3%A9 | %C3%A9 | %C3%A9 |
Teksti kodohet gjithmonë si UTF-8 dhe shifrat heksadecimale janë gjithmonë shkronja të mëdha. Nëse hyrja përmban tashmë sekuenca si %20, një shënim e thotë këtë dhe ofron Dekodoje në vend të kësaj, që të mos e kodoni tekstin dy herë gabimisht.
Për ta kaluar JSON në një parametër query, minifikojeni te JSON formatter dhe kodojeni si Vlerë parametri: {"id":7,"tags":["a","b"]} bëhet %7B%22id%22%3A7%2C%22tags%22%3A%5B%22a%22%2C%22b%22%5D%7D. Punon edhe anasjelltas: dekodoni parametrin këtu, pastaj formatojeni atje.
Probleme me URL decode: shenjat plus, %2520 dhe sekuenca të prishura
Dekodimi zakonisht punon pa probleme, por katër situata ngatërrojnë njerëzit. Mjeti i trajton secilën prej tyre në vend që të ndalojë me gabim:
- Një shenjë plus përfaqëson një hapësirë në të dhënat e formularit dhe në shumicën e vargjeve query. Dekodo + si hapësirë është e aktivizuar si parazgjedhje, prandaj
caf%C3%A9+au+laitdekodohet nëcafé au lait. Në një URL të plotë vetëm pluset pas?llogariten si hapësira, sepse në një shteg plusi është shenjë e zakonshme. Çaktivizojeni opsionin kur plusi ka kuptim fjalë për fjalë. Një plus i koduar si%2Bmbetet gjithmonë plus. - Kodimi i dyfishtë ndodh kur dy shtresa kodi e kodojnë secila të njëjtën vlerë, gjë për të cilën RFC 3986 paralajmëron shprehimisht. Çdo
%bëhet%25, prandaj një hapësirë kalon nga%20në%2520. Nëse rezultati i dekoduar përmban ende sekuenca si%20, mjeti thotë se teksti ka gjasa të jetë koduar dy herë dhe ofron Dekodo përsëri. - Një sekuencë e pavlefshme, një
%që nuk ndiqet nga dy shifra heksadecimale si te100%ose%G1, e bëndecodeURIComponenttë JavaScript të ngrejë një URIError. Këtu sekuenca të tilla lihen siç janë, shënohen me të kuqe dhe numërohen, ndërsa pjesa tjetër e tekstit dekodohet. - Lidhjet e vjetra Latin-1 vijnë nga koha para UTF-8, kur disa faqe e kodonin
ési bajtin e vetëm%E9.caf%E9nuk është UTF-8 i vlefshëm, prandajdecodeURIComponentdështon dheunquotei Python kthencafe ndjekur nga shenja zëvendësuese U+FFFD. Mjeti i lexon këto bajte si Windows-1252, e dekodoncaf%E9nëcafédhe shton një shënim që e thotë këtë.
Shenjat e kontrollit në tekstin e dekoduar, si një tabulator ose një bajt zero, shfaqen si simbole të dukshme si ␉ dhe ␀, por Kopjo kopjon tekstin e vërtetë.
Analizues URL: ndani një URL dhe ndryshoni parametrat e query
Ngjitni një adresë te fusha URL e skedës Analizo dhe ndrysho URL dhe ajo ndahet në Protokolli, Hosti, Porta, Shtegu dhe Fragmenti, plus Emri i përdoruesit dhe Fjalëkalimi kur URL-ja i përmban. Vlerat shfaqen të dekoduara, prandaj kjo skedë është edhe mënyra më e shpejtë për të dekoduar parametrat e URL-së: lexoni këpucë vrapimi në vend të k%C3%ABpuc%C3%AB+vrapimi. Ndryshimi punon në të dy drejtimet, si shiriti i adresës dhe tabela e parametrave në Postman. Ndryshoni një fushë dhe URL-ja rishkruhet menjëherë, e koduar saktë; ndryshoni URL-në dhe të gjitha pjesët lexohen përsëri. Pjesët që nuk i prekni mbeten saktësisht siç ishin, shenjë për shenjë.
Tabela Parametrat e query liston çdo parametër me Emri dhe Vlera të tij. Hiqeni shenjën te Përfshije në URL për ta lënë një parametër jashtë pa e fshirë, gjë që ndihmon kur kërkoni parametrin që e prish një kërkesë. Shto parametër, Hiq parametrin dhe Rendit A deri Z bëjnë atë që thonë. Emrat e përsëritur si tag=a&tag=b dhe emrat pa vlerë si ?debug ruhen. Hapësirat në parametra vendos nëse hapësirat shkruhen si %20 ose +; si parazgjedhje ndjek URL-në që ngjitët.
Lidhjet e hyrjes dhe të pagesës shpesh mbartin një URL të dytë brenda një parametri, të koduar që ? dhe & e tij të mos përzihen me ato të jashtmet:
https://auth.example.com/authorize?client_id=abc&redirect_uri=https%3A%2F%2Fapp.example.com%2Fcallback%3Ftab%3D2
Një vlerë që është vetë URL, zakonisht te redirect_uri, return, url ose next, merr një buton Ndrysho URL-në brenda. Adresa e brendshme https://app.example.com/callback?tab=2 hapet si nivel më vete me pjesët dhe parametrat e saj, një shteg navigimi (URL kryesor › redirect_uri) të kthen mbrapsht, dhe çdo ndryshim kodohet përsëri te URL-ja e jashtme. Kopjo URL kryesor kopjon rezultatin. Kjo punon disa nivele në thellësi.
Kur pjesa pas # duket si parametra, si #access_token=...&state=... në rrjedhën implicite të OAuth ose #/search?q=shoes në rrugët e aplikacioneve me një faqe, një tabelë e dytë, Parametrat e fragmentit, i liston edhe ata.
Analizuesi tregon edhe probleme: një URL pa protokoll, që shfletuesit e trajtojnë si lidhje relative; një portë jashtë intervalit 0 deri 65535; dhe shenja që duhen koduar, si hapësirat, shkronjat me diakritikë, " ose <, që Kodoji i rregullon me një hap. Teksti pa adresë, si a=1&b=2, lexohet si varg query. Për një domen të ndërkombëtarizuar (në anglisht) mjeti tregon formën Punycode që përdorin DNS dhe shfletuesit, prandaj münchen.de bëhet xn--mnchen-3ya.de, dhe një domen që fillon me xn-- merr formën e tij të lexueshme.
Kopjo URL kopjon adresën e gatshme, Hap e hap në një skedë të re (vetëm lidhjet http dhe https), dhe Kopjo si JSON ju jep parametrat si objekt JSON, me emrat e përsëritur të mbledhur në një varg.
Si të hiqni UTM dhe parametra të tjerë gjurmimi nga një URL
Lidhjet nga buletinet, reklamat dhe rrjetet sociale mbartin parametra që i tregojnë faqes vetëm nga erdhi vizitori. Parametrat UTM (në anglisht) utm_source, utm_medium, utm_campaign, utm_term dhe utm_content e kanë origjinën te Urchin, paraardhësi i Google Analytics. ID-të e klikimit si fbclid (Facebook), gclid (Google Ads) dhe msclkid (Microsoft Advertising) shtohen nga vetë platformat.
Analizuesi i shënon këta me etiketën gjurmim, dhe Hiq gjurmimin (n) i fshin të gjithë njëherësh. Përveç çdo parametri utm_*, njeh më shumë se 20 të tjerë, si ttclid (TikTok), mc_cid (Mailchimp) dhe _hsenc (HubSpot). Parametrat që i duhen faqes mbeten në vend: te lidhja e dyqanit nga Provo një shembull, Hiq gjurmimin (4) heq utm_source, utm_medium, utm_campaign dhe fbclid dhe ruan q, size, return dhe fragmentin #reviews.
Një lidhje që do të futet në një kod QR ia vlen të pastrohet këtu më parë. Pa parametra gjurmimi është më e shkurtër, dhe një lidhje më e shkurtër jep kod më pak të dendur që skanohet më lehtë.
Çfarë është percent encoding dhe si bëhen shenjat %XX
Percent-encoding (në anglisht), që quhet edhe URL encoding, e shkruan një shenjë si % e ndjekur nga dy shifra heksadecimale. Një URL mund të përmbajë vetëm një bashkësi të kufizuar shenjash ASCII, dhe disa prej tyre kanë detyrë: ? e nis query-n, & ndan parametrat, # e nis fragmentin. RFC 3986 i quan këto shenja të rezervuara (: / ? # [ ] @ dhe ! $ & ' ( ) * + , ; =). Shkronjat, shifrat dhe - . _ ~ janë të lira dhe nuk kanë nevojë kurrë për kodim. Çdo gjë tjetër, dhe çdo shenjë e rezervuar e përdorur si e dhënë e thjeshtë, kodohet.
Shenjat jashtë ASCII kthehen së pari në bajte UTF-8, dhe çdo bajt merr %XX e vet:
éështë U+00E9, që UTF-8 e ruan si dy bajtet C3 A9, prandaj bëhet%C3%A9.€është U+20AC, tre bajte:%E2%82%AC.- Një emoji si U+1F600 (fytyrë që buzëqesh) zë katër bajte:
%F0%9F%98%80.
%c3%a9 dhe %C3%A9 do të thonë njëlloj, por RFC 3986 rekomandon shkronja të mëdha, që është ajo që shkruan mjeti. Një tabelë e percent encoding për shenjat që hasni më shpesh:
| Shenja | E koduar | Shenja | E koduar |
|---|---|---|---|
| hapësirë | %20 | + | %2B |
! | %21 | , | %2C |
" | %22 | / | %2F |
# | %23 | : | %3A |
$ | %24 | ; | %3B |
% | %25 | = | %3D |
& | %26 | ? | %3F |
' | %27 | @ | %40 |
( | %28 | [ | %5B |
) | %29 | ] | %5D |
* | %2A | ndarje rreshti | %0A |
URL encoding në JavaScript, Python dhe PHP
Çdo gjuhë ka funksione për këtë, dhe ato ndryshojnë kryesisht në mënyrën si i trajtojnë hapësirat, vizat e pjerrëta dhe ! ' ( ) * ~.
JavaScript ka encodeURIComponent (në anglisht) për një vlerë, encodeURI për një adresë të plotë dhe URLSearchParams për kodimin e formularëve:
encodeURIComponent("café & crème") // "caf%C3%A9%20%26%20cr%C3%A8me"
encodeURI("https://example.com/a b?q=café") // "https://example.com/a%20b?q=caf%C3%A9"
new URLSearchParams({ q: "café & crème" }).toString() // "q=caf%C3%A9+%26+cr%C3%A8me"
decodeURIComponent("caf%C3%A9") // "café"
decodeURIComponent nuk e kthen + në hapësirë, dhe ngre një URIError te një sekuencë e pavlefshme si 100%.
Në Python funksionet ndodhen te urllib.parse. quote e ruan / si parazgjedhje (safe='/') dhe përndryshe kodon gjithçka përveç shenjave të lira të RFC 3986. quote_plus i shkruan hapësirat si + dhe kodon edhe /:
from urllib.parse import quote, quote_plus, urlencode, unquote_plus
quote("café & crème/brûlée") # 'caf%C3%A9%20%26%20cr%C3%A8me/br%C3%BBl%C3%A9e'
quote("a b/c", safe="") # 'a%20b%2Fc'
quote_plus("café & crème/brûlée") # 'caf%C3%A9+%26+cr%C3%A8me%2Fbr%C3%BBl%C3%A9e'
urlencode({"q": "café & crème", "page": 2}) # 'q=caf%C3%A9+%26+cr%C3%A8me&page=2'
unquote_plus("caf%C3%A9+au+lait") # 'café au lait'
Në PHP, urlencode kodon si një formular HTML dhe e shkruan hapësirën si +, ndërsa rawurlencode ndjek RFC 3986 dhe shkruan %20:
urlencode("café & crème"); // "caf%C3%A9+%26+cr%C3%A8me"
rawurlencode("café & crème"); // "caf%C3%A9%20%26%20cr%C3%A8me"
rawurlencode jep të njëjtin rezultat si RFC 3986 strikt. urlencode përputhet me Të dhëna formulari përveç *, që e kodon si %2A.
Pyetje të shpeshta
Hapësira duhet koduar si %20 apo +?
%20 punon kudo në një URL. Një + do të thotë hapësirë vetëm në vargun query dhe në të dhënat e formularit, formatin që dërgojnë formularët HTML. Në një shteg, + është shenjë plus e zakonshme, prandaj /a+b mbetet /a+b. Kur një vlerë query ka nevojë për plus të vërtetë, shkruajeni si %2B. Në mjet, Të dhëna formulari i shkruan hapësirat si + dhe tri mënyrat e tjera si %20.
Çfarë do të thonë %20, %2F dhe %3D në një URL?
Janë shenja të koduara: %20 është hapësirë, %2F vizë e pjerrët dhe %3D shenja e barazimit. Të tjera që shihni shpesh janë %26 (&), %3F (?), %3A (:), %2C (presje) dhe %27 (apostrof). Dy shifrat janë kodi i shenjës në heksadecimal. Shkronjat me diakritikë dhe shenjat e tjera jo-ASCII zënë dy deri në katër çifte të tilla, si %C3%A9 për é. Ngjitni vargun e plotë te dekoduesi për ta lexuar.
Cili është ndryshimi mes encodeURI dhe encodeURIComponent?
encodeURI është menduar për një adresë të plotë dhe i lë të paprekura shenjat që e strukturojnë, si : / ? # & =. encodeURIComponent është menduar për një pjesë, një vlerë parametri ose një segment shtegu, dhe i kodon edhe ato shenja, prandaj https://example.com/?a=1&b=2 bëhet https%3A%2F%2Fexample.com%2F%3Fa%3D1%26b%3D2. Në këtë mjet, Vlerë parametri përputhet me encodeURIComponent, dhe URL i plotë është si encodeURI por i ruan sekuencat ekzistuese si %20 në vend që t'i kthejë në %2520.
Si t'i heq parametrat UTM nga një URL?
Ngjitni lidhjen te skeda Analizo dhe ndrysho URL dhe shtypni Hiq gjurmimin (n). Ai i fshin njëherësh të gjitha etiketat utm_* dhe ID-të e klikimit si fbclid dhe gclid. Pastaj shtypni Kopjo URL. Për të hequr vetëm disa prej tyre, përdorni Hiq parametrin te rreshtat që nuk i doni.
A është URL encoding e njëjtë me enkriptimin ose Base64?
Jo. URL encoding nuk fsheh asgjë: kushdo mund ta dekodojë caf%C3%A9 përsëri në café, prandaj nuk mbron kurrë një fjalëkalim ose një token. Ai vetëm i bën shenjat të sigurta për t'u përdorur në një adresë. Base64 është kodim tjetër që çdo të dhënë, edhe skedarët binarë, e kthen në varg me 64 shenja. Një varg Base64 në një URL ka ende nevojë që +, / dhe = të kodohen, përveç nëse përdorni variantin URL-safe, që e prodhon koduesi dhe dekoduesi Base64.
A ngarkohen ose ruhen URL-të që ngjis?
Jo. Kodimi, dekodimi dhe analizimi punojnë në shfletuesin tuaj, dhe asgjë që ngjitni nuk dërgohet në server. Kjo ka rëndësi, sepse URL-të shpesh mbartin tokenë aksesi, ID sesionesh ose kode për rivendosjen e fjalëkalimit. Shfletuesi kujton vetëm skedën dhe opsionet që zgjodhët, kurrë tekstet. E vetmja gjë që ngarkon adresën është Hap, që e hap në një skedë të re njëlloj si klikimi i lidhjes.
Më shumë mjete për programuesit ka në kategorinë Zhvilluesit, dhe mjetet që e kthejnë një format në tjetrin janë mbledhur te Konvertuesit. Për të gjetur çfarë ndryshon mes dy URL-ve të gjata, për shembull një thirrje API që punon dhe një që dështon, ngjitini te mjeti i krahasimit të teksteve dhe krahasoni sipas shenjave.