Skip to main content

URL енкодер и декодер

Енкодирајте и декодирајте URL адреси онлајн. Конвертирајте специјални знаци во процентно енкодиран формат за безбедна употреба во веб адреси и низи за барање.

Ad (leaderboard)
Должина на влез
Должина на излез
Големина на влез
Големина на излез
Rate this tool
0.0 / 5 · 0 ratings

Embed This Calculator

Add this calculator to your website for free. Copy the single line of code below and paste it into your HTML. The calculator auto-resizes to fit your page.

<script src="https://calchammer.com/embed.js" data-calculator="url-encoder-decoder" data-category="everyday"></script>
data-theme "light", "dark", or "auto"
data-values Pre-fill inputs, e.g. "amount=1000"
data-max-width Max width, e.g. "600px"
data-border "true" or "false"
Or use an iframe instead
<iframe src="https://calchammer.com/embed/everyday/url-encoder-decoder" width="100%" height="500" style="border:none;border-radius:12px;" title="Url Encoder Calculator"></iframe>

Preview

yoursite.com/blog
Url Encoder Calculator auto-resizes here
Ad (in_results)

Како да го користите URL енкодерот и декодерот

Внесете или залепете текст во полето за внесување и кликнете Енкодирај за да го конвертирате во URL енкодиран формат. Алатката обезбедува два формати на излез истовремено: Компонентно енкодирање го користи еквивалентот на JavaScript функцијата encodeURIComponent(), која ги енкодира сите специјални знаци, вклучувајќи ги URL разделувачите како /, ? и #. Целосно URL енкодирање го користи еквивалентот на encodeURI(), кој ги зачувува структурните знаци на URL-то додека го енкодира остатокот. За да го превртите процесот, залепете енкодиран текст во полето за внесување и кликнете Декодирај. И двете излезни полиња ќе го прикажат истиот декодиран резултат.

Мрежата со статистики под излезот ја прикажува должината во знаци и големината во бајти на влезот и излезот, помагајќи ви да разберете како енкодирањето влијае на големината на податоците. Секое излезно поле има свое копче Копирај за брз пристап до клипбордот. Оваа алатка работи целосно во вашиот прелистувач — никакви податоци не се испраќаат до сервер.

Ad (in_content)

Што е URL енкодирање?

URL енкодирањето, формално познато како процентно енкодирање, е дефинирано во RFC 3986 како механизам за претставување знаци во Uniform Resource Identifier (URI) кои не се дозволени во синтаксата на URI. URL адресите можат да содржат само ограничен збир на ASCII знаци: букви, цифри и неколку специјални знаци (- _ . ~) познати како нерезервирани знаци. Секој друг знак мора да биде енкодиран во форма на знак за процент проследен со две хексадецимални цифри кои ја претставуваат неговата вредност во бајти. На пример, празно место се енкодира во %20, амперсанд во %26, а знак плус во %2B.

Резервираните знаци како : / ? # [ ] @ ! $ & ' ( ) * + , ; = имаат специјално структурно значење во URL адресите. Кога овие знаци се појавуваат како податоци наместо како разделувачи, тие мора да бидат процентно енкодирани. На пример, ако барање за пребарување содржи амперсанд, тој мора да биде енкодиран во %26 за да не биде интерпретиран како разделувач на параметри.

encodeURIComponent наспроти encodeURI

JavaScript обезбедува две вградени функции за URL енкодирање, секоја со различна намена. encodeURIComponent() ги енкодира сите знаци освен нерезервираните (A-Z, a-z, 0-9, - _ . ~). Ова го прави идеален за енкодирање на поединечни компоненти на URL како вредности на параметри за барање, сегменти на патеката или идентификатори на фрагменти. Ги енкодира знаците како / ? # & = бидејќи тие би ја нарушиле структурата ако останат неенкодирани во вредност на компонента.

encodeURI() енкодира целосна URI зачувувајќи ги знаците кои и даваат структура на URL адресата: : / ? # [ ] @ ! $ & ' ( ) * + , ; =. Користете ја кога имате целосна URL адреса која може да содржи не-ASCII знаци (како акцентирани букви или празни места во патеката), но структурните разделувачи треба да останат непроменети. На пример, encodeURI("https://example.com/патека со празни места") правилно ги енкодира само празните места додека ги зачувува разделувачите :// и /.

Празни места: + наспроти %20

Третманот на празните места во URL адресите следи две конвенции. Стандардот за процентно енкодирање (RFC 3986) ги енкодира празните места во %20, и тоа е правилното енкодирање за сегменти на патеката и идентификатори на фрагменти. Форматот application/x-www-form-urlencoded, кој го користат HTML формите при поднесување податоци преку GET или POST, ги енкодира празните места во +. Овој формат е дефиниран во HTML спецификацијата и тоа е она што прелистувачите го користат за серијализирање на податоците од формите во низи за барање. %20 и + се двете валидни претстави на празно место, но припаѓаат на различни контексти. При програмско конструирање URL адреси, претпочитајте %20 за конзистентност со RFC 3986.

Вообичаени случаи на употреба

URL енкодирањето е суштинско во многу сценарија на веб развој. При конструирање URL адреси со динамички параметри за барање, секоја вредност на параметар мора да биде енкодирана за да се спречат специјалните знаци да ја нарушат структурата на URL-то. API барањата често бараат енкодирање на вредностите на параметрите, особено при пренесување кориснички генерирана содржина, термини за пребарување или имиња на датотеки. URL адресите за пренасочување вградени како параметри за барање мора да бидат целосно енкодирани за целата цел на пренасочувањето да се третира како единствена вредност. Податоците од формите испратени во GET барања автоматски се енкодираат од прелистувачите, но кодот на серверската страна често мора да ги енкодира вредностите при конструирање URL адреси за пренасочувања, API повици или генерирање врски.

Друго вообичаено сценарио е енкодирање на податоци за употреба во data: URI, букмарклети и JavaScript location.href доделувања. Енкодирањето е исто така критично при конструирање OAuth потписи, HMAC потпишани URL адреси и секоја безбедносно чувствителна манипулација со URL адреси каде неправилното енкодирање може да доведе до неусогласеност на потписите или ранливости од инјекција.

Често поставувани прашања

Што е URL енкодирање?

URL енкодирањето (процентно енкодирање) ги конвертира знаците кои не се дозволени во URL адреси во знак за процент проследен со две хексадецимални цифри. Празните места стануваат %20, амперсандите стануваат %26.

Која е разликата меѓу encodeURI и encodeURIComponent?

encodeURI ги зачувува структурните URL знаци како :, /, ?, и #. encodeURIComponent енкодира сè освен нерезервираните знаци, што го прави погоден за енкодирање на поединечни вредности на параметри за барање.

Зошто празните места се енкодираат во + или %20?

Форматот application/x-www-form-urlencoded користи + за празни места при поднесување форми. Стандардот RFC 3986 користи %20. И двете се валидни во различни контексти.

Кога треба да енкодирам текст за URL?

Секогаш кога вклучувате кориснички податоци или специјални знаци во параметри за барање, сегменти на патеката или идентификатори на фрагменти. Ова спречува знаците како & и = да бидат интерпретирани како URL разделувачи.

Може ли да енкодирам цела URL адреса?

Не. Енкодирањето на цела URL адреса би ги избегнало структурните знаци како :// и / правејќи ја URL адресата невалидна. Енкодирајте само поединечни компоненти како вредности на параметри и сегменти на патеката.

Related Calculators

Disclaimer: This calculator is for informational and educational purposes only. Results are estimates and should not be considered professional expert advice. Consult a qualified professional before making decisions based on these calculations. See our full Disclaimer.