URL Encode / Decode
Что такое URL-кодирование
URL-кодирование (percent-encoding) — это механизм преобразования символов в формат, безопасный для передачи через URL. Любой символ, не входящий в набор допустимых, заменяется на последовательность %XX, где XX — шестнадцатеричный код байта. Этот механизм описан в стандарте RFC 3986 и является основой работы всех веб-приложений.
Percent-encoding
Каждый байт символа преобразуется в %HH, где HH — шестнадцатеричное значение. Например, пробел становится %20, а кириллическая буква занимает 2 байта в UTF-8: «П» превращается в %D0%9F. Это гарантирует корректную передачу данных через HTTP-протокол.
RFC 3986
Стандарт определяет синтаксис URI и правила кодирования. Безопасные (unreserved) символы: A-Z, a-z, 0-9, дефис, точка, подчёркивание, тильда. Зарезервированные символы (:, /, ?, #, &, = и другие) имеют особое значение в URL и должны кодироваться при использовании в качестве данных.
UTF-8 и кириллица
Современные браузеры используют UTF-8 для кодирования не-ASCII символов в URL. Кириллические буквы занимают 2 байта (диапазон %D0%80–%D1%BF), что важно учитывать при ограничениях длины URL. Максимальная длина URL в большинстве браузеров составляет около 2000 символов.
Где используется URL-кодирование
URL-кодирование — фундаментальная часть веб-технологий. Понимание его работы необходимо каждому разработчику и маркетологу.
API-разработка
Передача параметров в REST и GraphQL API. Корректное кодирование query-параметров критически важно для работы API: незакодированные спецсимволы (&, =, ?) разрушают структуру запроса.
Веб-скрапинг
Формирование URL для парсинга страниц. При автоматическом сборе данных необходимо правильно кодировать поисковые запросы, фильтры и пагинацию в параметрах URL.
Аналитика и UTM
UTM-метки (utm_source, utm_medium, utm_campaign) требуют кодирования значений с пробелами, кириллицей и спецсимволами. Некорректное кодирование приводит к потере данных в Яндекс Метрике и Google Analytics.
SEO и Cyrillic URL
Яндекс поддерживает кириллические URL (ЧПУ), но при копировании они автоматически кодируются. Понимание percent-encoding помогает корректно настраивать канонические адреса, редиректы и карту сайта.
Mailto и протоколы
Ссылки вида mailto:, tel:, и пользовательские схемы URI требуют кодирования специальных символов в теле письма, теме и других параметрах, иначе ссылка не откроется корректно.
Deep Links и OAuth
Callback URL в OAuth-потоках, deep links в мобильных приложениях и redirect_uri параметры требуют двойного кодирования (URL внутри URL), что является частым источником ошибок.
Таблица кодирования/ справочник символов
Какие символы кодируются, а какие передаются без изменений. Безопасные символы по RFC 3986 не требуют кодирования. Зарезервированные символы имеют специальное значение в структуре URL.
Безопасные (unreserved) — НЕ кодируются
Зарезервированные — кодируются в данных
| Символ | Код | Назначение в URL |
|---|---|---|
| : | %3A | Разделитель протокола (http:) |
| / | %2F | Разделитель пути (/path/to) |
| ? | %3F | Начало query-строки |
| # | %23 | Начало фрагмента (якоря) |
| & | %26 | Разделитель параметров |
| = | %3D | Присвоение значения параметру |
| + | %2B | Пробел (в form-urlencoded) |
| @ | %40 | Разделитель userinfo и хоста |
| пробел | %20 | Пробел (или + в формах) |
Кириллица (UTF-8)
| Символ | URL-код | UTF-8 байты |
|---|---|---|
| А | %D0%90 | 0xD0 0x90 |
| Б | %D0%91 | 0xD0 0x91 |
| Я | %D0%AF | 0xD0 0xAF |
| а | %D0%B0 | 0xD0 0xB0 |
| я | %D1%8F | 0xD1 0x8F |
| ё | %D1%91 | 0xD1 0x91 |
encodeURI vs encodeURIComponent
Две самые популярные функции JavaScript для URL-кодирования работают по-разному. Понимание их различий критически важно для корректной работы с URL в веб-приложениях.
encodeURI()
Кодирует строку как целый URI. Не кодирует зарезервированные символы, которые являются частью структуры URL: : / ? # [ ] @ ! $ ' ( ) * + , ; =
Пример:
encodeURI("https://example.com/путь?q=запрос")Результат:
https://example.com/%D0%BF%D1%83%D1%82%D1%8C?q=%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81Когда использовать: когда нужно закодировать целый URL, сохранив его структуру (протокол, хост, путь, параметры).
encodeURIComponent()
Кодирует строку как компонент URI. Кодирует все зарезервированные символы, включая : / ? # & =. Оставляет только: A-Z a-z 0-9 - _ . ~ ! ' ( ) *
Пример:
encodeURIComponent("ключ=значение&другой")Результат:
%D0%BA%D0%BB%D1%8E%D1%87%3D%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%26%D0%B4%D1%80%D1%83%D0%B3%D0%BE%D0%B9Когда использовать: когда нужно закодировать значение параметра или любую часть URL, которая может содержать спецсимволы.
Сводная таблица различий
| Символ | encodeURI | encodeURIComponent |
|---|---|---|
| Пробел | %20 | %20 |
| / | / (не кодирует) | %2F |
| ? | ? (не кодирует) | %3F |
| & | & (не кодирует) | %26 |
| = | = (не кодирует) | %3D |
| # | # (не кодирует) | %23 |
| @ | @ (не кодирует) | %40 |
| Кириллица | %D0%XX | %D0%XX |
Советы по работе с URL
Практические рекомендации, которые помогут избежать распространённых ошибок при кодировании и декодировании URL.
1Используйте encodeURIComponent для параметров
Самая частая ошибка — использование encodeURI для кодирования значений query-параметров. Если значение содержит & или =, структура URL будет нарушена. Всегда используйте encodeURIComponent для отдельных значений.
2Избегайте двойного кодирования
Двойное кодирование превращает %20 в %2520. Это происходит, когда уже закодированная строка кодируется повторно. Проверяйте, не закодирован ли текст перед кодированием. Признак: наличие %25 в результате.
3Пробел: %20 или +?
В стандарте RFC 3986 пробел кодируется как %20. Но формат application/x-www-form-urlencoded (HTML-формы) использует + вместо %20. JavaScript-функции encodeURI и encodeURIComponent используют %20. Используйте URLSearchParams для формата с плюсами.
4Ограничение длины URL
Спецификация HTTP не ограничивает длину URL, но браузеры имеют свои лимиты: Chrome — около 2 МБ, IE — 2083 символа, серверы (Apache, Nginx) обычно 8 КБ. Кириллица увеличивает длину в 3-6 раз, учитывайте это при формировании URL.
5URL в URL (redirect_uri)
При передаче URL в качестве параметра другого URL (например, redirect_uri в OAuth) необходимо полностью закодировать вложенный URL через encodeURIComponent. Иначе символы ?, & и = вложенного URL будут интерпретированы как часть внешнего.
6Серверная сторона
Серверные языки имеют свои аналоги: Python — urllib.parse.quote(), PHP — urlencode() и rawurlencode(), Java — URLEncoder.encode(). Убедитесь, что кодировка на клиенте и сервере совпадает (UTF-8 — стандарт де-факто).
Как пользоваться инструментом
Четыре режима работы для решения разных задач: кодирование, декодирование, разбор URL и генерация query-строк.
Кодирование
Выберите метод (encodeURIComponent для параметров, encodeURI для целого URL). Введите текст — результат появится мгновенно. Скопируйте одним нажатием.
Декодирование
Вставьте закодированную строку с %XX последовательностями. Инструмент автоматически определит и декодирует все percent-encoded символы, включая кириллицу.
Разбор URL
Вставьте полный URL — инструмент разложит его на компоненты: протокол, хост, путь, query-параметры и фрагмент. Удобно для анализа сложных ссылок.
Query Builder
Добавляйте пары ключ-значение — инструмент автоматически сформирует закодированную query-строку. Идеально для построения API-запросов и UTM-меток.
Связанные расчёты
Другие инструменты для разработчиков, которые могут пригодиться при работе с URL и данными.
Base64 Encode/Decode
Кодирование и декодирование Base64. Часто используется вместе с URL-кодированием для передачи бинарных данных.
Генератор хешей
MD5, SHA-256 хеши для проверки целостности данных, передаваемых через URL-параметры.
Генератор UUID
Генерация уникальных идентификаторов для использования в URL-параметрах и API-запросах.
Часто задаваемые вопросы

Лиана Арифметова
Миссия: Демократизировать сложные расчеты. Превратить страх перед числами в ясность и контроль. Девиз: «Любая повторяющаяся задача заслуживает своего калькулятора».
Отказ от ответственности
Только для информационных целей. Все расчёты, результаты и данные, предоставляемые данным инструментом, носят исключительно ознакомительный и справочный характер. Они не являются профессиональной консультацией — медицинской, юридической, финансовой, инженерной или иной.
Точность результатов. Калькулятор основан на общепринятых формулах и методиках, однако фактические результаты могут отличаться в зависимости от индивидуальных условий, исходных данных и применяемых стандартов. Мы не гарантируем полноту, точность или актуальность приведённых расчётов.
Медицинские, финансовые и профессиональные решения должны приниматься исключительно на основании консультации с квалифицированными специалистами — врачом, финансовым советником, инженером или другим профессионалом в соответствующей области. Не используйте результаты данного инструмента как единственное основание для принятия важных решений.
Ограничение ответственности. Авторы и разработчики сервиса не несут никакой ответственности за прямой или косвенный ущерб, возникший в результате использования данных расчётов. Пользователь принимает на себя всю ответственность за интерпретацию и применение полученных результатов.
Похожие инструменты
Калькулятор оценок и GPA
Расчёт среднего балла (GPA), перевод оценок между системами (5-балльная, ECTS, GPA 4.0, ЕГЭ). Компонентное оценивание и условия красного диплома.
Калькулятор сантехника: трубы, поток, давление
Расчет объема воды в трубе, скорости потока и потерь давления. Выбор материала (пластик, медь, сталь) и диаметра.
Калькулятор биохимии
Кинетика Михаэлиса-Ментен, уравнение Хендерсона-Хассельбальха, концентрация ДНК/РНК по OD260, молекулярная масса белка, ферментативные единицы.
Калькулятор международного налогообложения (СИДН, КИК)
Расчёт налога у источника по СИДН, налогообложение КИК (ст. 25.13 НК РФ), тест налогового резидентства и зачёт иностранного налога.
Конвертер систем счисления с объяснением
Конвертация между двоичной, восьмеричной, десятичной и шестнадцатеричной системами с пошаговым объяснением.
Калькулятор DPI и размера печати
Пересчёт пикселей в размер печати при заданном DPI. Форматы A4-A0, фотопечать, полиграфия.
ETL Калькулятор: тайминг, ресурсы, Incremental vs Full, SLA, ошибки
Комплексный калькулятор ETL (Extract-Transform-Load). Оценка времени извлечения, трансформации и загрузки, подбор CPU/RAM/диска, сравнение Incremental и Full Load, расчёт SLA, анализ ошибок и Dead Letter Queue.
Калькулятор стоимости обучения и налогового вычета
Расчёт полной стоимости обучения в российских вузах, налоговый вычет 13% (лимит 150 000 руб./год с 2024), сравнение вузов и перевод на бюджет.
Калькулятор Child-Pugh (цирроз печени)
Рассчитайте класс тяжести цирроза по шкале Чайлд-Пью. Прогноз выживаемости, хирургический риск. Для гепатологов и хирургов.
Калькулятор энергоэффективности здания: класс, теплопотери, паспорт
Расчёт класса энергоэффективности по Приказу 399/пр, удельного расхода энергии, теплопотерь и энергетического паспорта здания.
Калькулятор кухни
Расчёт кухонного гарнитура: модули, столешница, фартук. Линейная, угловая, П-образная кухня. Стоимость в рублях.
Калькулятор сечения провода (ПУЭ)
Сечение кабеля по мощности и току. Падение напряжения, медь/алюминий. По ПУЭ 7 для 220В и 380В.
Калькулятор субсидии на ЖКХ
Расчёт субсидии на оплату ЖКХ: право на субсидию, размер по доходу.
Калькулятор управления автопарком
Расчёты автопарка: TCO, расход топлива, размер парка, ТО, водители, лизинг vs покупка
Калькулятор расхода ткани на обивку мебели
Расчёт расхода ткани на перетяжку дивана, кресла, стула. По типу мебели или размерам.