Выберите режим
Компонент для значения, целый URI для сохранения структуры, форма для пробелов как +.
Целый адрес и отдельное значение запроса имеют разные границы.
Целый адрес и отдельное значение запроса имеют разные границы.
Компонент для значения, целый URI для сохранения структуры, форма для пробелов как +.
Вставьте некодированный текст и проверьте байты UTF-8. Адрес не открывается.
Скопируйте или скачайте TXT. Ссылка на инструмент не содержит введённый текст.
Для поиска A&B + café кодируйте только значение в режиме компонента: A%26B%20%2B%20caf%C3%A9. Вставьте после q= в пример https://example.test/search?q=, оставив структуру вне преобразования.
URI целиком сохраняет структурный амперсанд. Режим не угадает, что символ уже собранного сырого запроса должен быть данными. Определите границу до кодирования, не после неожиданного ответа.
При проверке формы сравните A+B C в компоненте и значении формы: A%2BB%20C и A%2BB+C. Оба защищают исходный плюс, но по-разному представляют пробел.
Важен протокол получателя, не короткий результат. Декодер формы считает + пробелом, компонентный сохраняет. Этот инструмент не собирает имена, повторные параметры или полный запрос.
Проверьте café перед UTF-8-получателем. Ввод занимает пять байт, caf%C3%A9 — девять ASCII-байт и две последовательности.
Числа описывают представление, не слова и визуальную сложность. Готовая акцентированная буква и буква с комбинируемой меткой могут выглядеть одинаково с разными байтами. Страница не нормализует и не выбирает представление подписанного запроса.

Компонент URI подходит для одного значения запроса или сегмента пути. Защищает &, =, /, ? и # от структурной роли при вставке. URI целиком предполагает готовую нужную структуру разделителей. Ни один режим не определяет задуманные данные неоднозначной строки.
folder/name превращается в folder%2Fname как компонент и остаётся folder/name как URI целиком. Это значение с косой чертой против сохранённого разделителя пути. Получатель может иметь другие правила: кодирование не гарантирует принятие такого идентификатора.
JavaScript сохраняет пунктуацию, которую строгая конвенция RFC 3986 может экранировать. Это отличие совместимости, не четвёртый режим. Если API требует дополнительное экранирование или канонизацию, используйте его сериализатор; правдоподобный результат не доказывает соответствие. Определения ECMAScript и исторические наборы символов.
A&BИсходное значениеA%26BКодированное значение?q=A%26BЗначение в запросеПроцентная последовательность записывает байт как % и две шестнадцатеричные цифры. café превращается в caf%C3%A9, потому что é занимает два байта UTF-8. Это не шифрование.
Косая черта, & и # могут задавать структуру адреса. Сначала кодируйте значение, затем вставляйте его. Кодирование всего адреса как компонента скрывает и разделители.
Режим целого URI использует encodeURI и сохраняет зарезервированные разделители. Он не проверяет домены, не блокирует опасные схемы и не создаёт строгую каноническую форму RFC. Категории символов в RFC 3986.
Пробелы превращаются в +, а настоящий плюс — в %2B. Режим формы также кодирует !, апострофы, скобки и ~, которые компонентный режим JavaScript оставляет без изменений.
Здесь обрабатывается одно значение. a=b&c=d не собирается как два независимых поля. Для полной коллекции параметров используйте структурированный сериализатор.
Повторное кодирование %2F даёт %252F. При вложении это бывает нужно, но может указывать на лишний слой. Согласуйте с получателем один слой на каждой границе. Сериализация форм WHATWG.
Таблица сохраняет ввод и меняет режим. Плюс — данные и становится %2B в режимах значений. Пробел — %20 в компоненте и + в форме. Тильда и восклицание показывают, что режим меняет не только запись пробелов.
Байты ввода используют UTF-8. Байты и кодовые точки результата считают выходную строку с %, шестнадцатеричными цифрами и пунктуацией. %HH представляет байт на границе, но три выходных символа. Счётчики не считают графемы и не проверяют серверный предел.
Загрузка примера вставляет демонстрацию, не открывает адрес. Текст и режим пересчитываются без сети и дополнительной отправки. Сохраните оригинал до очистки или перехода к декодеру: ссылка не переносит ввод.
| Ввод | Режим | Кодированный результат |
|---|---|---|
| A&B | Компонент URI | A%26B |
| A+B C | Компонент URI | A%2BB%20C |
| A+B C | Значение формы | A%2BB+C |
| folder/name | Компонент URI | folder%2Fname |
| folder/name | URI целиком | folder/name |
| ~! | Компонент URI | ~! |
| ~! | Значение формы | %7E%21 |
Буквальные примеры, не полные тела запросов. Границы и правила получателя задаются отдельно.
Если %2F стал %252F, закодирован уже присутствующий знак процента. URI целиком тоже кодирует буквальные знаки процента, а не сохраняет всё ранее экранированное. Вернитесь к оригиналу, кроме намеренного внешнего слоя с кодированным значением. Не переписывайте подписанный URL экспериментальным декодированием и повтором.
Ошибка Unicode может означать непарный суррогат. Страница отвергает его вместо незаметной замены. Получите корректный исходник; произвольная замена меняет идентификатор. Для старой байтовой кодировки нужен другой конвертер, не этот UTF-8.
Копирование и TXT передают точный результат. При отказе буфера выделите и скопируйте вручную, при отказе загрузки копируйте. Ссылка передаёт страницу без ввода, запроса и фрагмента. Локальное преобразование не защищает историю буфера и файлы; кодирование не проверяет безопасность.
Локальное преобразование выполняет один проход encodeURIComponent, encodeURI или кодирования значения формы. Счётчики показывают байты UTF-8 и кодовые точки Unicode, не графемы.
Кодирование не шифрует, не очищает и не проверяет URL. Одиночные суррогаты Unicode отклоняются. Полные формы и строгий режим RFC не предусмотрены.
Сохраните оригинал и сообщите режим с вымышленным примером. Не отправляйте токены или подписанные частные URL. Перед изменением рабочих ссылок проверьте правила получателя.
Компонент URI, если протокол явно не требует кодирования формы.
Нет. Текст можно восстановить без секрета.
Знак % был закодирован повторно.
Считает зарезервированные разделители структурой. Не знает, что амперсанд сырого значения должен быть данными. Кодируйте значение отдельно компонентом или требуемой формой, структуру собирайте подходящим сериализатором.
Только как значение, обычно не как задумано. a=b&c=d не разбирается на поля. Полный сериализатор отдельно кодирует имена и значения, соединяет = и &. Повторные имена и пустые поля тоже требуют структуры.
Набор формы экранирует их, компонент JavaScript сохраняет. * остаётся без escape и в форме. Выбирайте по получателю, не виду. Дополнительного строгого RFC-режима для других требований API нет.
Не вслепую. Восстановленный разделитель становится структурой не там; многобайтному символу нужны все UTF-8-байты. Узнайте, считает ли предел байты, декодированный текст или весь запрос. Страница не знает контракт.
Нет. Копирует адрес без ввода, результата, текущего запроса и фрагмента. Текст передаётся сознательным копированием или загрузкой. Ссылка декодера тоже не несёт данные: сохраните оригинал до перехода.