Безплатен конвертор

URL енкодер / Декодер

Кодирайте и декодирайте незабавно URL адреси и URI компоненти във вашия браузър. Безплатно, лично и не се изисква качване.

или

За този инструмент

URL кодирането (официално процентно кодиране, дефинирано в RFC 3986) превежда знаците, които имат специално значение в URL адресите – интервали, наклонени черти, амперсанд, решетки – в безопасна форма, като използва знаци за процент, последвани от шестнадесетични цифри. Знакът за интервал става %20 (или + в контексти, кодирани във форма), амперсандът става %26 и т.н. Без това кодиране специалните символи биха се интерпретирали като URL синтаксис, а не като буквални данни, нарушаващи URL адреса или причиняващи нежелано поведение.

Съществуват две свързани, но различни кодировки. Стандартното кодиране на URL компонента използва %-escapes за всичко извън нерезервирания набор от знаци: A-Z, a-z, 0-9, тире, долна черта, точка, тилда. Вариантът с кодиран формуляр (application/x-www-form-urlencoded) допълнително третира интервалите като знаци плюс и използва различни правила за някои други знаци. encodeURIComponent на JavaScript използва стриктното кодиране на компонента; encodeURI използва по-разрешителна форма, която запазва символите на URL структурата.

Този инструмент предлага както кодиране, така и декодиране. Режимът на кодиране обгръща всеки знак, който изисква екраниране, във формат %HH; режимът на декодиране обръща трансформацията. И двете работят изцяло във вашия браузър, като използват вградени URL функции на JavaScript, така че никъде не се изпращат данни.

Защо да кодирате или декодирате URL адреси

Всеки път, когато в URL са включени данни — параметри на низ на заявка, сегменти от пътя, съдържащи въведени от потребителя данни, цели за пренасочване — изисква се правилно кодиране. Неуспешното кодиране създава URL адреси, които се прекъсват, когато се появят специални знаци, пропускат граници на параметри към низове на заявки (превръщайки &x=1 в отделен параметър) или се блокират от уеб сървъри като неправилно формирани заявки.

Декодирането е обратното: извличане на оригиналните данни от кодиран URL. Адресните ленти на браузъра често показват URL адреси в кодирана форма; декодирането разкрива какво всъщност е било предназначено. Регистрирането, отстраняването на грешки и анализът на сигурността се възползват от декодирани URL адреси, които показват оригиналните параметри и пътища.

Как да използвате

Поставете низ, изберете посока.

  1. Изберете кодиране или декодиране: Encode обвива опасните знаци във формат %HH. Декодирането обръща %HH ​​се връща към буквални знаци.
  2. Добавете въведен текст: Поставете низа, за да кодирате или декодирате. За кодиране това обикновено е литерална стойност с интервали, специални знаци или не-ASCII съдържание. За декодиране, това е URL адрес или URL компонент, съдържащ %HH екрани.
  3. Преобразуване: Инструментът прилага encodeURIComponent или decodeURIComponent. Кодираният изход е безопасен за вграждане в URL адрес; декодираният изход е оригиналната литерална стойност.
  4. Копирайте или изтеглете: Използвайте резултата, където имате нужда. Кодираните стойности се вписват в URL адреси; декодираните стойности разкриват оригиналните данни.

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

Технически подробности

encodeURIComponent кодира всеки знак извън нерезервирания набор [A-Za-z0-9-_.~]. Интервалите стават %20, знаците плюс стават %2B, знаците за равенство стават %3D и т.н. Знаците извън ASCII първо се кодират в UTF-8 и след това всеки байт се екранира %.

encodeURI е по-разрешителен и е предназначен за пълни URL адреси, а не за компоненти. Той не избягва /, ?, &, =, # и няколко други, тъй като тези символи имат URL-синтактично значение. За вграждане на потребителски данни в URL, encodeURIComponent е почти винаги правилният избор.

decodeURIComponent обръща %-escapes, като потвърждава, че всеки escape е добре оформен и че получените байтове формират валиден UTF-8. Неправилното въвеждане хвърля грешка, вместо да генерира боклук.

Най-добри практики

Често задавани въпроси

Какви символи се нуждаят от URL кодиране?
Запазените знаци (&, =, ?, #, /, :, @) и небезопасните знаци (интервали, <, >, {, }, |, ^, ~, [, ], `) трябва да бъдат кодирани. Буквено-цифровите символи и -_.~ са безопасни и не се нуждаят от кодиране.
Каква е разликата между encodeURI и encodeURIComponent?
encodeURI кодира пълен URL адрес, но запазва запазените знаци (://?#). encodeURIComponent кодира всичко освен -_.!~*'() — използвайте го за стойности на параметрите на заявката. Този инструмент предлага и двата режима.
Как се кодират интервалите в URL адресите?
Интервалите могат да бъдат кодирани като %20 (стандартно процентно кодиране) или + (кодиране на формата). %20 е правилен за URL пътища, докато + се използва в низове на заявки от HTML формуляри. Този инструмент използва %20 по подразбиране.
Мога ли да кодирам Unicode символи?
да Unicode знаците първо се кодират в UTF-8 байтове, след което всеки байт се кодира процентно. Например „日“ става %E6%97%A5 (три UTF-8 байта, всеки процентно кодиран).
Трябва ли да използвам encodeURI или encodeURIComponent?
Почти винаги encodeURIComponent. Използвайте encodeURI само ако имате пълен URL и искате да запазите структурата му – обикновено рядко, тъй като така или иначе създавате URL адреси от компоненти.
Данните ми качват ли се на сървър?
Не. URL кодирането и декодирането се извършват изцяло във вашия браузър.
Поддържа ли Unicode emoji?
да Емотикони са многобайтови UTF-8 последователности; енкодерът създава верига от %-екранирани байтове, които декодерите правилно сглобяват обратно към оригиналното емоджи.
Какво ще стане, ако въведените ми данни имат низове, изглеждащи %HH, които всъщност не са кодирани?
Кодирането превръща всеки % в %25, след което отново прилага екраниране за останалите. Декодирането на строг вход хвърля грешки при неправилно формирани екрани; двусмислено изглеждащите низове може да се декодират неправилно.