Что такое Кодировщик/Декодировщик URL?
Кодировщик/декодировщик URL преобразует специальные символы в URL в процентно-кодированный вид и обратно. Пригодится при работе со строками запросов, параметрами API или URL, содержащими пробелы и спецсимволы.
Доступны четыре режима кодирования. Component (encodeURIComponent) экранирует все зарезервированные символы, включая / и &, что и нужно внутри значения параметра. Full URL (encodeURI) оставляет структурные символы нетронутыми, чтобы адрес целиком оставался разбираемым. Режим данных формы кодирует пробелы как + для отправок application/x-www-form-urlencoded. Строгий режим RFC 3986 идёт дальше и экранирует ещё и !'()* — субразделители, которые encodeURIComponent пропускает, поэтому результат подходит для любого URL по стандарту. Auto-detect ищет последовательности %XX и сам выбирает направление, переключатель «Вживую» пересчитывает результат по мере ввода, опция «Рекурсивное декодирование» снимает двойное и тройное кодирование до конца, а панель сравнения показывает один и тот же ввод, закодированный сразу всеми четырьмя режимами.
Как использовать
- Вставьте URL или текстовую строку в поле ввода.
- Нажмите «Кодировать», чтобы преобразовать спецсимволы в процентно-кодированный вид, или «Декодировать» — чтобы вернуть исходный вид.
- Скопируйте результат в буфер обмена или используйте кнопку замены для переключения ввода и вывода.
Когда использовать
- Собирать query string вручную, экранируя пробелы, & и знаки равенства.
- Расшифровать строку серверного лога с percent-encoding в читаемый текст.
- Вставить URL с не-ASCII символами в простое текстовое письмо так, чтобы он не сломался.
Результат
Разработчик кодирует «hello world&foo=bar» в «hello%20world%26foo%3Dbar» для использования в параметре строки запроса.
Частые вопросы
- Чем отличаются encodeURI и encodeURIComponent?
- encodeURI не трогает структурные знаки /, ?, & и =, чтобы URL целиком работал. encodeURIComponent экранирует их все — это правильно, когда текст идёт как одно значение параметра после ? в query string.
- Почему в декодированной строке остаются %20?
- Либо исходник был закодирован дважды (один проход возвращает всё ещё закодированную строку, нужен второй), либо это form-encoded данные, где пробел кодируется плюсом. Декодируйте дважды или замените + на пробел перед декодированием.
- Какие символы можно класть в URL без кодирования?
- Незарезервированные символы: A–Z, a–z, 0–9 и четыре знака — дефис, подчёркивание, точка и тильда. Всё прочее, включая пробелы, не-ASCII буквы и зарезервированные знаки без синтаксической роли в данном месте, должно быть percent-encoded.
- Сломает ли строку повторное кодирование?
- Да. Двойное кодирование превращает каждый % в %25, и для возврата к оригиналу понадобится декодировать два раза. Если вы добавляете значение из другой системы, которое уже могло быть закодировано, сначала декодируйте его или ведите флаг состояния.
- Поддерживает ли инструмент юникод, например русский или китайский?
- Поддерживает. Встроенный encodeURIComponent в браузере преобразует любой символ в последовательность байт UTF-8 и затем кодирует каждый байт процентом. Декодирование возвращает обратно: «кофе» прекрасно проходит туда-обратно через свою percent-форму.
Похожие инструменты
Поиск рифм
Находите точные и приблизительные рифмы к любому слову
Решатель анаграмм
Найдите все допустимые анаграммы для любого слова
Поиск Unicode
Поиск символов Unicode по имени или коду
Фонетический алфавит НАТО
Преобразуйте текст в фонетический алфавит НАТО
Счётчик абзацев
Подсчитайте абзацы в тексте
Конвертер Pig Latin
Преобразуйте текст в Pig Latin и обратно