URL Encoder / Decoder
Кодируйте полный адрес, отдельный компонент или данные HTML-формы в UTF-8.
Не удалось выполнить преобразование
- Исходный тип
- Нет данных
- Режим
- Компонент URL
- Percent-последовательности
- 0
- Изменение размера
- —
Структура URL
Разбор найденного полного адреса без сетевого запроса.
- Протокол
- —
- Хост
- —
- Порт
- —
- Путь
- —
- Query
- —
- Фрагмент
- —
Query-параметры
Текст обрабатывается локально и не отправляется на сервер. Максимальный размер — 512 КБ.
Об инструменте
Кодируйте и декодируйте полный URL, отдельные параметры, пути и данные HTML-формы. Инструмент поддерживает UTF-8, encodeURI, encodeURIComponent, application/x-www-form-urlencoded и строгий RFC 3986, показывает структуру адреса и query-параметры. Обработка выполняется локально в браузере.
Как пользоваться
- Вставьте полный URL, отдельный компонент или закодированную строку.
- Выберите режим: компонент URL, полный URL, HTML-форма или строгий RFC 3986.
- При многострочном списке выберите обработку всего текста либо каждой строки отдельно.
- Нажмите «Кодировать» или «Декодировать». Для полного адреса сервис дополнительно покажет протокол, хост, путь, query и фрагмент.
- Скопируйте результат, скачайте TXT или перенесите результат обратно во входное поле.
Примеры
рыжий котпревращается в%D1%80%D1%8B%D0%B6%D0%B8%D0%B9%20%D0%BA%D0%BE%D1%82в режиме компонента URL.- В режиме HTML-формы пробел записывается как
+:рыжий+кот. - Полный адрес
https://example.com/поиск?q=котсохраняет разделители://?=, но кодирует кириллицу. - Последовательность
%2Fдекодируется в символ/, а%25— в знак процента.
URL-кодирование и percent-encoding: подробное руководство
URL-кодирование, или percent-encoding, представляет символы последовательностями из знака процента и двух шестнадцатеричных цифр. Например, пробел обычно записывается как %20, знак процента — как %25, а кириллица сначала переводится в байты UTF-8 и затем кодируется каждый байт. Такой формат позволяет безопасно передавать текст внутри адреса, пути и query-параметров.
Компонент URL и полный адрес
Для отдельного значения параметра подходит поведение encodeURIComponent: оно кодирует разделители :, /, ?, & и =, чтобы введённое значение не изменило структуру адреса. Для уже собранного полного URL используют поведение encodeURI, которое сохраняет служебные разделители, но кодирует пробелы, кириллицу и другие недопустимые символы. Неправильный режим может превратить весь адрес в один компонент или, наоборот, оставить внутри параметра лишний знак &.
RFC 3986 и зарезервированные символы
RFC 3986 разделяет символы на незарезервированные, зарезервированные и остальные. Буквы латиницы, цифры, дефис, точка, подчёркивание и тильда обычно остаются без изменений. Символы :/?#[]@!$&'()*+,;= могут управлять структурой URL. Строгий режим дополнительно кодирует !, одинарную кавычку, круглые скобки и звёздочку, что полезно для подписей запросов и систем с точными требованиями к каноническому виду.
Почему пробел бывает %20 или +
В обычном URL пробел кодируется как %20. Формат application/x-www-form-urlencoded, применяемый HTML-формами и многими query-строками, исторически использует знак +. Поэтому при декодировании form-data знак плюс превращается в пробел. В обычном режиме плюс остаётся плюсом. Выбирайте формат по документации API, иначе значение A+B может быть прочитано как A B.
Unicode и UTF-8
Кириллица, эмодзи и другие Unicode-символы кодируются через байты UTF-8. Один видимый символ может занимать несколько байтов и образовывать несколько percent-последовательностей. Из-за этого закодированная строка часто заметно длиннее исходной. Инструмент показывает число символов, байтов и percent-последовательностей, чтобы увеличение размера было видно до передачи адреса.
Двойное кодирование
Если повторно кодировать уже обработанную строку, каждый знак процента превратится в %25. Например, %20 станет %2520. Это называется двойным кодированием и часто вызывает неверные маршруты, подписи и параметры API. Декодируйте только тот слой, который действительно был добавлен, и проверяйте результат перед повторным использованием.
Ошибки декодирования
Каждый знак процента должен сопровождаться двумя шестнадцатеричными цифрами. Строки вроде %2 или %ZZ некорректны. Ошибка также возникает, если последовательность байтов не образует допустимый UTF-8. Terabita.by не подменяет повреждённые данные: сервис сообщает об ошибке, чтобы пользователь не получил незаметно искажённый результат.
Разбор структуры URL
Если во входе или результате найден полный адрес HTTP или HTTPS, инструмент отдельно показывает протокол, домен, порт, путь, query-строку, фрагмент и повторяющиеся query-параметры. Разбор выполняется средствами браузера без открытия сайта и без сетевого запроса. Он помогает заметить неожиданный домен, пустой параметр, нестандартный порт или фрагмент.
Безопасность и приватность
URL-кодирование не является шифрованием: любой может декодировать значение. Не помещайте в адрес пароли, токены и персональные данные, если они могут попасть в историю браузера, журнал сервера или аналитику. Введённый текст обрабатывается локально и не отправляется на сервер Terabita.by. Для работы с Base64 используйте Base64 Encoder / Decoder, для проверки JSON — JSON Formatter, а готовую ссылку можно поместить в QR-код.
Частые вопросы
Чем encodeURI отличается от encodeURIComponent?
encodeURI предназначен для полного адреса и сохраняет его служебные разделители. encodeURIComponent кодирует отдельное значение параметра или сегмент, включая символы /, ?, & и =.
Почему пробел иногда превращается в +?
Так работает формат application/x-www-form-urlencoded, используемый HTML-формами. В обычном percent-encoding пробел записывается как %20.
Что такое строгий RFC 3986?
Этот режим дополнительно кодирует символы !, одинарную кавычку, круглые скобки и звёздочку, чтобы получить более строгий канонический компонент URL.
Почему %20 после повторного кодирования стал %2520?
Произошло двойное кодирование: знак процента превратился в %25. Не кодируйте повторно уже подготовленное значение без необходимости.
Можно ли обработать список адресов?
Да. Выберите «Каждую строку отдельно», чтобы переносы строк сохранились, а каждый адрес или компонент был обработан независимо.
Почему строка не декодируется?
Percent-последовательность должна содержать знак % и две шестнадцатеричные цифры. Неполные последовательности и некорректные байты UTF-8 вызывают ошибку.
Отправляются ли URL на сервер?
Нет. Кодирование, декодирование и разбор структуры выполняются локально в браузере без сетевого запроса.