URL Encoder

URL Encoder / Decoder

Закодируйте любой текст в безопасную для URL строку с percent-encoding или декодируйте закодированный URL обратно. Живой просмотр, поддержка UTF-8, всё работает прямо в браузере.

Component (encodeURIComponent) экранирует всё, что не относится к незарезервированным символам — самый безопасный вариант для значений query-string, сегментов пути или любого отдельного поля. URI (encodeURI) сохраняет структурные символы URL (:/?#=&) — используйте его для целого URL. Form (application/x-www-form-urlencoded) — это Component, в котором пробелы заменяются на «+»; именно так кодируют HTML-формы.

RFC 3986 определяет набор «незарезервированных» символов, которые не нужно кодировать: A-Z a-z 0-9 - _. ~. Всё остальное подвергается percent-encoding. encodeURIComponent дополнительно кодирует :/?#&=, которые encodeURI оставляет нетронутыми. Это различие важно, когда вы кодируете значение параметра, а не целый URL.

Обычный текст

0 симв.

Закодированный результат

0 симв.

Почему iKit URL Encoder

Быстро, точно, только в браузере — для разработчиков, копирайтеров и всех, кто отлаживает URL.

Три режима кодирования

Выбирайте режим Component, Full URI или Form в зависимости от того, что кодируете — значение query-string, целый URL или содержимое HTML-формы.

Приватность по умолчанию

Любое кодирование и декодирование выполняется в вашем браузере встроенным JavaScript. Текст и URL не покидают устройство.

Живой предпросмотр

Результат обновляется на каждое нажатие — никаких кнопок «Кодировать», никаких обращений к серверу.

Поддержка UTF-8

Эмодзи, иероглифы CJK, латиница с диакритикой и кириллица корректно проходят через encodeURIComponent и обратно.

Обработка + как в формах

При декодировании можно считать «+» пробелом — соглашение, которое HTML-формы используют в application/x-www-form-urlencoded.

Пакетная обработка файлов

Перетащите файл.txt,.csv или.json, чтобы закодировать или декодировать его за один шаг. Результат скачивается как.txt.

Как на самом деле работает URL-кодирование

Три встроенных API браузера, три режима — и всё это работает прямо на странице, которую вы читаете.

  1. 1

    Вы вводите текст в редактор

    На каждое нажатие клавиши строка передаётся небольшой JavaScript-функции. Никаких debounce, никаких вызовов API, никаких fetch — функция выполняется синхронно во вкладке вашего браузера.

  2. 2

    Выбор режима

    Component вызывает encodeURIComponent — экранирует всё, что не входит в A-Z a-z 0-9 - _. ~. URI вызывает encodeURI — сохраняет :/?#=&, чтобы целый URL остался валидным. Form использует encodeURIComponent и заменяет пробел на + согласно application/x-www-form-urlencoded.

  3. 3

    UTF-8 работает сам собой

    Обе функции encodeURIComponent и encodeURI внутри преобразуют строку в байты UTF-8 перед percent-encoding каждого небезопасного байта. Поэтому китайский иероглиф 中 превращается в %E4%B8%AD — ровно то, что требует RFC 3986.

  4. 4

    Результат появляется в реальном времени

    Результат подставляется в поле вывода, доступное только для чтения. Нажмите «Копировать», чтобы поместить его в буфер обмена через navigator.clipboard.writeText, или «Скачать», чтобы сохранить как .txt через Blob URL — всё остаётся в вашем браузере.

Типичные сценарии использования

Реальные ситуации, в которых правильный режим кодирования предотвращает баги.

Сборка значений query-string

Любой пользовательский ввод, который попадает в ?q=..., должен кодироваться в режиме Component. Режим URI оставит = и & необработанными и сломает URL, если значение их содержит.

Отправка длинного URL в чате

Некоторые мессенджеры и PDF портят ссылки, когда в них есть пробелы или не-ASCII символы. Прогоните URL через режим URI, чтобы он безопасно копировался и вставлялся где угодно.

Отладка бэкенда, возвращающего 400

Когда ваш API отклоняет запрос, вставьте URL в режим Decode, чтобы увидеть, что на самом деле получил сервер. Двойное кодирование (когда сам % закодирован как %25) сразу бросается в глаза.

Round-trip данных формы

При отладке POST-тел в формате application/x-www-form-urlencoded декодируйте с включённой опцией «+ как пробел». Именно это соглашение используют браузеры, и забыть про него — главная причина багов вида «почему в имени пользователя плюсы вместо пробелов».

Почему важно кодировать локально

Кодируемые URL часто содержат реальные email клиентов, идентификаторы или токены сессий — именно те данные, которые не стоит вставлять в чужой серверный сервис. iKit URL Encoder работает как JavaScript, уже загруженный в ваш браузер, поэтому ввод не покидает вкладку.

  • Никаких fetch, XHR или beacon во время кодирования и декодирования.
  • Работает офлайн после загрузки страницы.
  • Никаких логов, лимитов запросов, регистрации и дневных квот.

Связанные руководства

Подробные туториалы и сравнения инструментов из блога iKit.

Часто задаваемые вопросы

Чем отличаются режимы Component, URI и Form?

Component (encodeURIComponent) экранирует всё, что не относится к незарезервированным символам — самый безопасный вариант для значений query-string, сегментов пути или любого отдельного поля. URI (encodeURI) сохраняет структурные символы URL (:/?#=&) — используйте его для целого URL. Form (application/x-www-form-urlencoded) — это Component, в котором пробелы заменяются на «+»; именно так кодируют HTML-формы.

Почему некоторые символы не кодируются?

RFC 3986 определяет набор «незарезервированных» символов, которые не нужно кодировать: A-Z a-z 0-9 - _. ~. Всё остальное подвергается percent-encoding. encodeURIComponent дополнительно кодирует :/?#&=, которые encodeURI оставляет нетронутыми. Это различие важно, когда вы кодируете значение параметра, а не целый URL.

Почему декодированный текст выглядит неправильно?

Три типичные причины: (1) исходник был закодирован как Form, поэтому «+» нужно считать пробелом — включите соответствующую опцию. (2) Двойное кодирование — ввод закодировали дважды; декодируйте ещё раз. (3) Некорректная percent-последовательность — одиночный % без двух шестнадцатеричных цифр следом. Точную позицию байта смотрите в сообщении об ошибке.

Совпадает ли результат с JavaScript-функцией encodeURIComponent?

Да, в режиме Component — мы вызываем encodeURIComponent напрямую. Режим Form добавляет стандартные правки form-encoding (! ' * становятся %21 %27 %28 %29 %2A) согласно RFC 3986 и WHATWG. Режим URI вызывает encodeURI — это то, что в большинстве языков называют «percent-encoding для URL».

Загружаются ли мои URL куда-либо?

Нет. Весь инструмент — это JavaScript внутри страницы, кодирование и декодирование происходят в вашем браузере. Можно убедиться: откройте DevTools → Network и наблюдайте — никаких запросов при операциях кодирования и декодирования не отправляется.