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

Кодирайте текст за URL адреси и низове на заявки, декодирайте кодирани URL адреси и разделете всеки URL на части с декодирани параметри на заявката.

Работи в браузъраБез регистрацияНищо не се качва

Кодирано

Как да използвате: URL кодиране / декодиране

  1. Изберете Кодиране или Декодиране.
  2. При кодиране изберете Компонент за единична стойност на параметър или сегмент от пътя, Пълен URL, за да запазите структурата на URL, или Данни от форма за application/x-www-form-urlencoded.
  3. Поставете текста. Резултатът се появява мигновено; невалидните escape последователности се отчитат с позицията им.
  4. Поставете пълен URL в URL парсера, за да видите хоста, пътя, фрагмента и всеки декодиран параметър на заявката.

Какво е URL кодиране?

URL адресите могат да съдържат само ограничен набор от ASCII символи (RFC 3986). Всичко останало, включително интервали, нелатински букви и символи със специално значение като &, ? и #, се записва като знак за процент, последван от две шестнайсетични цифри за всеки UTF-8 байт. Интервалът става %20, а é става %C3%A9.

encodeURIComponent срещу encodeURI

ФункцияОставя непроменениИзползва се за
encodeURIComponentA-Z a-z 0-9 - _ . ~Единична стойност на заявка, сегмент от пътя или име на параметър
encodeURIСъщо : / ? # [ ] @ ! $ & ' ( ) * + , ; =Цял URL, чиято структура трябва да се запази

Използването на encodeURI за стойност на заявка е класически бъг: & вътре в стойността не се екранира и разделя параметъра на две. Режимът Компонент на този инструмент екранира и ! ' ( ) * за стриктно спазване на RFC 3986.

%20 или + за интервали?

В пътищата интервалът трябва да е %20. При изпращане на HTML форми (application/x-www-form-urlencoded) и в много низове на заявки интервалът се записва като +. При декодиране включете Тълкувай + като интервал за данни от форми и го изключете, когато буквалният плюс има значение, например в jane+test@example.com.

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

Защо получавам „Невалидна escape последователност“ при декодиране?
След % трябва да има точно две шестнайсетични цифри. Буквален знак за процент, като в „50% отстъпка“, е трябвало да бъде кодиран като %25. Грешката показва позицията на лошата последователност.
Какво означава „Невалидна UTF-8 последователност от байтове“?
Байтовете не са кодирани като UTF-8, често защото текстът е създаден от стара система с Latin-1 (например %E9 за é вместо %C3%A9) или низът е отрязан по средата на символ.
Да кодирам ли целия URL или само параметрите?
Кодирайте всяко име и стойност на параметър поотделно с кодиране на компонент, след което ги свържете с = и &. Кодирането на цял URL в режим компонент би екранирало и :// и би го развалило.
Проблем ли е двойното кодиране?
Да. Кодирането на вече кодиран низ превръща %20 в %2520. Ако видите %25, последвано от hex цифри, стойността вероятно е кодирана два пъти. Декодирайте я два пъти, за да получите оригинала.

Свързани инструменти