URL енкодер и декодер
За една query вредност или еден дел од патеката. Кодира сѐ освен букви, цифри и - _ . ! ~ * ' ( ), исто како encodeURIComponent.
Залепете URL погоре. Неговите делови и параметри се појавуваат тука, подготвени за уредување.
Query параметри
Овој URL нема query параметри.
Параметри во фрагментот
Сѐ работи во вашиот прелистувач и ништо што ќе го залепите не се испраќа. Тоа е важно, бидејќи URL често носат токени и ID на сесии.
URL Encode Decode онлајн додека пишувате: алатката ги претвора празните места, буквите со дијакритици и симболите како & или ? во процентуално кодирани низи како %20 и ги враќа назад во читлив текст. Втората картичка е анализатор на URL. Таа секоја адреса ја разделува на протокол, хост, патека и query параметри што можете да ги уредувате, исклучувате или ги чистите од ознаки за следење, а потоа правилно кодираниот URL го запишува назад. Сѐ се одвива во вашиот прелистувач.
Како да направите URL encode и decode на текст
- Напишете или залепете во полето на картичката Кодирање / декодирање. Резултат се ажурира со секој внесен знак.
- Изберете Насока. Кодирај го прави текстот безбеден за URL, Декодирај го враќа
caf%C3%A9%20au%20laitвоcafé au lait. Ако во празното поле залепите текст со низи како%20, алатката сама се префрла на Декодирај (со Кодирај го текстот се враќате назад). Ако во режим Декодирај залепите обичен текст што треба да се кодира, се префрла на Кодирај на ист начин, со Декодирај го текстот. - При кодирање изберете под Кодирај како што е текстот (видете го следниот дел). Стандардниот избор, Вредност на параметар, е вистинскиот избор за една query вредност.
- Копирај го става резултатот во привремената меморија. Замени го префрла резултатот во влезот и ја менува насоката. Тоа е брза проверка во круг: декодирањето на тоа што штотуку го кодиравте мора да го врати вашиот оригинален текст.
Секој знак што алатката го променила е означен во резултатот. Задржете го покажувачот врз него за да ги видите знакот, неговата Unicode кодна точка и неговите бајти, на пример é U+00E9 %C3%A9. Под полињата го гледате бројот на Знаци, UTF-8 бајти и Кодирани знаци (или Декодирани знаци). Вчитај пример ја вчитува реченицата Цена: 50 % попуст за чај & кафе? Да!, која има 36 знаци, но 57 UTF-8 бајти, бидејќи секоја кирилска буква зафаќа два бајта, а само обичните ASCII знаци зафаќаат еден.
При кодирање, Секој ред посебно го кодира секој ред сам за себе и ги задржува преломите на редовите, што одговара на список од вредности или врски. Без таа опција и преломот на редот се кодира и станува %0A. Кога текстот е URL со параметри, алатката нуди Раздели на делови, што ја отвора адресата во картичката за анализа.
Кодирање на параметар, цел URL или податоци од образец
Не мора секој знак да се кодира насекаде. Косата црта во патеката одделува папки, но во вредноста на параметар е обичен податок, па точниот резултат зависи од тоа што го кодирате. Кодирај како нуди четири режими:
- Вредност на параметар работи како
encodeURIComponentво JavaScript и одговара за една query вредност или еден дел од патеката. Кодира сѐ освен букви, цифри и- _ . ! ~ * ' ( ), па&,=,/или?внатре во вредноста не можат да го расипат URL. Кодирањето наcafé & crèmeдаваcaf%C3%A9%20%26%20cr%C3%A8me, подготвено за залепување поq=. - Цела URL-адреса е за комплетна адреса што треба само да се среди. Кодира празни места, знаци надвор од ASCII, контролни знаци, обратниот наводник и
" < > \ ^ { | }, а го задржува сѐ што му дава структура на URL:: / ? # [ ] @ ! $ & ' ( ) * + , ; =. Такаhttps://example.com/search?q=café au lait&lang=frстануваhttps://example.com/search?q=caf%C3%A9%20au%20lait&lang=fr. Веќе кодираните низи остануваат такви какви што се, а поединечно%станува%25. Тука се разликува одencodeURIво JavaScript, што постоечко%20го претвора во%2520и ги кодира заградите на IPv6 адреса какоhttp://[2001:db8::1]:8080/. - Податоци од образец го следи форматот application/x-www-form-urlencoded (на англиски) што го создаваат HTML образците и
URLSearchParams. Празното место станува+, а некодирани остануваат само букви, цифри и* - . _, па и! ' ( ) ~се кодираат. - Строг RFC 3986 остава некодирани само незарезервираните знаци од RFC 3986 (на англиски): букви, цифри и
- . _ ~. OAuth 1.0 (RFC 5849) и AWS Signature Version 4 бараат токму таков облик, бидејќи потписот се совпаѓа само кога двете страни!или*ги кодираат на ист начин.
Истите знаци во секој режим:
| Знак | Вредност на параметар | Цела URL-адреса | Податоци од образец | Строг RFC 3986 |
|---|---|---|---|---|
| празно место | %20 | %20 | + | %20 |
& | %26 | & | %26 | %26 |
/ | %2F | / | %2F | %2F |
+ | %2B | + | %2B | %2B |
~ | ~ | ~ | %7E | ~ |
! | ! | ! | %21 | %21 |
* | * | * | * | %2A |
é | %C3%A9 | %C3%A9 | %C3%A9 | %C3%A9 |
Текстот секогаш се кодира како UTF-8, а хексадецималните цифри се секогаш големи букви. Ако влезот веќе содржи низи како %20, белешка го кажува тоа и нуди Декодирај го текстот, за да не го кодирате текстот двапати по грешка.
За да пренесете JSON во query параметар, минимизирајте го во JSON форматерот и кодирајте го како Вредност на параметар: {"id":7,"tags":["a","b"]} станува %7B%22id%22%3A7%2C%22tags%22%3A%5B%22a%22%2C%22b%22%5D%7D. Важи и обратно: декодирајте го параметарот тука, па форматирајте го таму.
URL decode проблеми: знаци плус, %2520 и расипани низи
Декодирањето обично едноставно работи, но четири ситуации ги збунуваат луѓето. Алатката се справува со секоја од нив наместо да запре со грешка:
- Знакот плус значи празно место во податоците од образец и во повеќето query string. Декодирај го + како празно место е вклучено по основа, па
caf%C3%A9+au+laitсе декодира воcafé au lait. Во цел URL како празни места се сметаат само плус знаците по?, бидејќи во патека плусот е обичен знак. Исклучете ја опцијата кога плусот е мислен буквално. Плус што бил кодиран како%2Bсекогаш останува плус. - Двојно кодирање се случува кога два слоја код ја кодираат истата вредност, пред што RFC 3986 изрично предупредува. Секое
%станува%25, па празното место од%20се претвора во%2520. Ако декодираниот резултат сѐ уште содржи низи како%20, алатката кажува дека текстот веројатно е кодиран двапати и нуди Декодирај повторно. - Неважечка низа, односно
%што не е проследено со две хексадецимални цифри како во100%или%G1, предизвикуваdecodeURIComponentво JavaScript да фрли URIError. Тука такви низи се оставаат како што се, се означуваат црвено и се бројат, а остатокот од текстот се декодира. - Старите Latin-1 врски потекнуваат од времето пред UTF-8, кога некои страници го кодирале
éкако еден бајт%E9.caf%E9не е важечки UTF-8, паdecodeURIComponentне успева, аunquoteво Python враќаcaf, проследено со заменскиот знак U+FFFD. Алатката ги чита таквите бајти како Windows-1252, го декодираcaf%E9воcaféи додава белешка за тоа.
Контролните знаци во декодираниот текст, како табулатор или нула-бајт, се прикажуваат како видливи симболи, на пример ␉ и ␀, но Копирај го копира вистинскиот текст.
URL анализатор: разделете го URL и уредете ги query параметрите
Залепете адреса во полето URL на картичката Растави и уреди URL и таа се дели на Протокол, Хост, Порт, Патека и Фрагмент, плус Корисничко име и Лозинка кога URL ги содржи. Вредностите се прикажани декодирани, па картичката е и најбрз начин за декодирање на параметри од URL: читате спортски обувки наместо %D1%81%D0%BF%D0%BE%D1%80%D1%82%D1%81%D0%BA%D0%B8+%D0%BE%D0%B1%D1%83%D0%B2%D0%BA%D0%B8. Уредувањето оди во двете насоки, како во лентата за адреса и во табелата со параметри во Postman. Променете поле и URL веднаш се препишува, правилно кодиран; променете го URL и сите делови се читаат одново. Деловите што не ги допирате остануваат точно какви што биле, знак по знак.
Табелата Query параметри го наведува секој параметар со неговото Име и Вредност. Одштиклирајте Вклучи во URL за да го изоставите параметарот без да го бришете, што помага кога го барате оној параметар што го расипува HTTP барањето. Додај параметар, Отстрани параметар и Подреди А до Ш прават точно што пишува. Повторените имиња како tag=a&tag=b и имињата без вредност како ?debug се задржуваат. Празни места во параметрите одлучува дали празните места се пишуваат како %20 или +; по основа се држи до URL што сте го залепиле.
Врските за најава и плаќање често носат втор URL внатре во параметар, кодиран така што неговите ? и & не се мешаат со надворешните:
https://auth.example.com/authorize?client_id=abc&redirect_uri=https%3A%2F%2Fapp.example.com%2Fcallback%3Ftab%3D2
Вредност што самата е URL, обично во redirect_uri, return, url или next, добива копче Уреди го URL внатре. Внатрешната адреса https://app.example.com/callback?tab=2 се отвора како посебно ниво со свои делови и параметри, навигациската патека (Главен URL › redirect_uri) води назад, а секоја промена се кодира назад во надворешниот URL. Копирај го главниот URL го копира резултатот. Тоа работи неколку нивоа длабоко.
Кога делот по # личи на параметри, како #access_token=...&state=... во OAuth implicit flow или #/search?q=shoes во рутите на single page апликации, втора табела, Параметри во фрагментот, ги наведува и нив.
Анализаторот укажува и на проблеми: URL без протокол, што прелистувачите го сметаат за релативна врска; порт надвор од 0 до 65535; и знаци што мора да се кодираат, како празни места, букви со дијакритици, " или <, што Кодирај ги го поправа во еден чекор. Текст без адреса, како a=1&b=2, се чита како query string. За интернационализиран домен (на англиски) алатката го прикажува обликот Punycode што го користат DNS и прелистувачите, па münchen.de станува xn--mnchen-3ya.de, а доменот што почнува со xn-- го добива својот читлив облик.
Копирај URL ја копира готовата адреса, Отвори ја отвора во нова картичка (само http и https врски), а Копирај како JSON ви ги дава параметрите како JSON објект, со повторените имиња собрани во низа.
Отстранете UTM и други параметри за следење од URL
Врските од билтени, реклами и социјални мрежи носат параметри што само му кажуваат на сајтот од каде дошол посетителот. UTM параметрите (на англиски) utm_source, utm_medium, utm_campaign, utm_term и utm_content потекнуваат од Urchin, претходникот на Google Analytics. ID на кликови како fbclid (Facebook), gclid (Google Ads) и msclkid (Microsoft Advertising) ги додаваат самите платформи.
Анализаторот ги означува со ознаката следење, а Отстрани следење (n) ги брише сите одеднаш. Покрај секој utm_* параметар, препознава повеќе од 20 други, како ttclid (TikTok), mc_cid (Mailchimp) и _hsenc (HubSpot). Параметрите што му требаат на сајтот остануваат: во врската до продавница од Вчитај пример, Отстрани следење (4) ги отстранува utm_source, utm_medium, utm_campaign и fbclid, а ги задржува q, size, return и фрагментот #reviews.
Врската што ќе влезе во QR код вреди прво да се исчисти тука. Без параметри за следење е пократка, а пократката врска дава помалку густ код што полесно се скенира.
Што е процентуално кодирање и како знаците стануваат %XX
Процентуалното кодирање (на англиски), наречено и URL encoding, го запишува знакот како % проследено со две хексадецимални цифри. URL смее да содржи само ограничен збир на ASCII знаци, а некои од нив имаат задача: ? го започнува query string, & ги одделува параметрите, # го започнува фрагментот. RFC 3986 ги нарекува зарезервирани знаци (: / ? # [ ] @ и ! $ & ' ( ) * + , ; =). Буквите, цифрите и - . _ ~ се незарезервирани и никогаш не треба да се кодираат. Сѐ друго, и секој зарезервиран знак употребен како обични податоци, се кодира.
Знаците надвор од ASCII најпрво се претвораат во UTF-8 бајти, а секој бајт добива свое %XX:
éе U+00E9, што UTF-8 го чува како два бајта C3 A9, па станува%C3%A9.€е U+20AC, три бајта:%E2%82%AC.- Емоџи како U+1F600 (насмеано лице) зафаќа четири бајта:
%F0%9F%98%80.
%c3%a9 и %C3%A9 значат исто, но RFC 3986 препорачува големи букви, што и алатката ги пишува. Табела за процентуално кодирање на знаците што најчесто ги среќавате:
| Знак | Кодирано | Знак | Кодирано |
|---|---|---|---|
| празно место | %20 | + | %2B |
! | %21 | , | %2C |
" | %22 | / | %2F |
# | %23 | : | %3A |
$ | %24 | ; | %3B |
% | %25 | = | %3D |
& | %26 | ? | %3F |
' | %27 | @ | %40 |
( | %28 | [ | %5B |
) | %29 | ] | %5D |
* | %2A | прелом на ред | %0A |
URL encode и decode во JavaScript, Python и PHP
Секој јазик има функции за ова, а тие се разликуваат главно по тоа како ги третираат празните места, косите црти и ! ' ( ) * ~.
JavaScript има encodeURIComponent (на англиски) за вредност, encodeURI за цела адреса и URLSearchParams за кодирање на образец:
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 не го претвора + во празно место и фрла URIError при неважечка низа како 100%.
Во Python функциите се во urllib.parse. quote по основа ја задржува / (safe='/'), а инаку кодира сѐ освен незарезервираните знаци од RFC 3986. quote_plus ги пишува празните места како + и ја кодира и /:
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'
Во PHP, urlencode кодира како HTML образец и празното место го пишува како +, додека rawurlencode го следи RFC 3986 и пишува %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 дава ист резултат како Строг RFC 3986. urlencode одговара на Податоци од образец, освен за *, што го кодира како %2A.
Често поставувани прашања
Дали празното место треба да се кодира како %20 или +?
%20 работи насекаде во URL. Знакот + значи празно место само во query string и во податоците од образец, форматот што го испраќаат HTML образците. Во патека, + е обичен знак плус, па /a+b останува /a+b. Кога query вредност бара вистински плус, запишете го како %2B. Во алатката, Податоци од образец ги пишува празните места како +, а другите три режими како %20.
Што значат %20, %2F и %3D во URL?
Тоа се кодирани знаци: %20 е празно место, %2F коса црта, а %3D знак за еднакво. Други што често ги гледате се %26 (&), %3F (?), %3A (:), %2C (запирка) и %27 (апостроф). Двете цифри се кодот на знакот во хексадецимален запис. Буквите со дијакритици и другите знаци надвор од ASCII земаат од два до четири такви пара, како %C3%A9 за é. Залепете ја целата низа во декодерот за да ја прочитате.
Која е разликата меѓу encodeURI и encodeURIComponent?
encodeURI е наменет за цела адреса и ги остава знаците што ја структурираат, како : / ? # & =. encodeURIComponent е наменет за еден дел, вредност на параметар или дел од патека, и ги кодира и тие знаци, па https://example.com/?a=1&b=2 станува https%3A%2F%2Fexample.com%2F%3Fa%3D1%26b%3D2. Во оваа алатка, Вредност на параметар одговара на encodeURIComponent, а Цела URL-адреса е како encodeURI, но ги задржува постоечките низи како %20 наместо да ги претвора во %2520.
Како да отстранам UTM параметри од URL?
Залепете ја врската во картичката Растави и уреди URL и притиснете Отстрани следење (n). Тоа ја брише секоја ознака utm_* и ID на кликови како fbclid и gclid одеднаш. Потоа притиснете Копирај URL. За да отстраните само некои, користете Отстрани параметар на редовите што не ги сакате.
Дали URL кодирањето е исто како шифрирање или Base64?
Не. URL кодирањето ништо не крие: секој може да го декодира caf%C3%A9 назад во café, па никогаш не штити лозинка или токен. Само ги прави знаците безбедни за употреба во адреса. Base64 е друго кодирање што секакви податоци, вклучително и бинарни датотеки, ги претвора во низа од 64 знаци. Base64 низа во URL сепак бара нејзините +, / и = да се кодираат, освен ако не користите URL безбедна варијанта, што може да ја создаде Base64 енкодерот и декодерот.
Дали URL што ги залепувам се испраќаат или чуваат?
Не. Кодирањето, декодирањето и анализата работат во вашиот прелистувач и ништо што ќе го залепите не се испраќа до сервер. Тоа е важно, бидејќи URL често носат токени за пристап, ID на сесии или кодови за ресетирање на лозинка. Прелистувачот ги памети само избраната картичка и опциите, никогаш текстовите. Единственото што ја вчитува адресата е Отвори, што ја отвора во нова картичка исто како клик на врската.
Повеќе алатки за програмери има во категоријата Програмери, а алатките што еден формат го претвораат во друг се собрани во Конвертери. За да најдете што се разликува меѓу два долги URL, на пример меѓу работен и неуспешен API повик, залепете ги во алатката за споредба на текстови и споредувајте по знаци.