URL encoder / decoder

Кодирование текста в percent-encoding (%D0%9F…) и обратно. Режимы для целого URL и отдельного параметра.

Как устроен percent-encoding

Каждый символ, недопустимый в URL, заменяется на его байты в UTF-8, записанные как %XX. Пробел — %20, амперсанд — %26, буква «п» — два байта %D0%BF. Так любой текст, включая кириллицу, эмодзи и спецсимволы, можно безопасно передать в адресе страницы или параметре запроса.

Типичные задачи

Компонент или целый URL

Главное правило: значения параметров кодируйте как «компонент» (кодируются даже / и &), а готовый адрес целиком — в режиме «целый URL», который сохранит структуру ссылки. Перепутать — самая частая ошибка: закодированный как компонент адрес перестаёт открываться, а недокодированный параметр с & «съедает» все последующие параметры.

Частые вопросы

Зачем кодировать URL?

В адресе допустимы только латиница, цифры и немного знаков. Кириллица, пробелы и спецсимволы (&, ?, =, #) должны быть представлены percent-кодами, иначе ссылка сломается или параметры перепутаются: «привет» превращается в %D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82.

Чем отличаются режимы «компонент» и «целый URL»?

Режим «компонент» (encodeURIComponent) кодирует всё, включая / ? & = — подходит для значения параметра. Режим «целый URL» (encodeURI) сохраняет структуру адреса и кодирует только недопустимые символы. Если закодировать целый URL как компонент, он перестанет быть ссылкой.

Почему в ссылке из браузера видны %20 и %D0?

Это и есть percent-encoding: %20 — пробел, а пары вида %D0%BF — байты кириллицы в UTF-8. Вставьте такую ссылку в поле «Декодировать» — получите читаемый текст.

Обновлено: 2 июля 2026