Разработчика

URL Encoder / Decoder

Пробелы, символы и специальные знаки ломают URL — процентное кодирование решает эту проблему. Закодируйте любой URL для безопасной передачи или декодируйте его обратно в читаемый текст, мгновенно.

Этот инструмент вам помог?

Что такое URL Encoder / Decoder?

URL Encoder/Decoder — этоispensary инструмент веб-разработки, который преобразует между обычным текстом и URL-безопасным форматом процентного кодирования. Когда URL содержат пробелы, специальные символы или не-ASCII символы, такие как буквы с ударениями и эмодзи, они ломаются, если не закодированы правильно. Этот инструмент обеспечивает мгновенное кодирование и декодирование с полной поддержкой режима URL (кодирование полных URL) и режима компонентов (кодирование отдельных значений параметров запроса), а также пакетный режим для одновременной обработки нескольких строк.

Когда использовать этот калькулятор

  • Вы создаёте URL с параметрами запроса, содержащими пробелы, символы или не-ASCII знаки
  • Вам нужно декодировать процентно закодированный URL, чтобы прочитать его реальное содержимое
  • Вы отлаживаете API, который отклоняет ваш URL из-за незакодированных специальных символов
  • Вы обрабатываете отправленные пользователями URL, которые нужно очистить перед использованием
  • Вам нужно закодировать или декодировать сразу несколько сегментов URL
  • Вы создаёте редиректы или callback-URL, в которых параметры должны быть правильно закодированы

Шаги:

  1. Введите или вставьте текст/URL, который нужно закодировать или декодировать.
  2. Выберите режим «Кодировать» или «Декодировать».
  3. Нажмите кнопку «Преобразовать».
  4. Скопируйте результат для использования в своём приложении.

Формула

Кодирование: небезопасные символы → % + 2-значный шестнадцатеричный код ➡ Декодирование: %XX → исходный символ

Варианты использования

  • Создание безопасных строк запроса для URL
  • Обработка параметров запросов API
  • Отладка закодированных URL
  • Создание URL-дружественных слагов и путей

Основные преимущества

  • Мгновенное кодирование и декодирование с результатами в реальном времени
  • Поддерживает режим URL и режим компонентов для разных контекстов
  • Пакетный режим для кодирования или декодирования нескольких строк одновременно
  • Обрабатывает все специальные символы включая Unicode и эмодзи
  • 100% на основе браузера — данные не отправляются на сервер
  • Визуальный подсчёт символов для проверки того, что кодирование не дублировало и не обрезало ввод

Советы профессионалов

  • Всегда кодируйте генерируемые пользователем параметры URL перед включением их в URL
  • Используйте encodeURIComponent() в JavaScript для отдельных значений параметров запроса
  • Декодируйте URL перед отображением пользователям для лучшей читаемости
  • Остерегайтесь двойного кодирования: если вы видите %25 за которыми следуют шестнадцатеричные цифры, URL вероятно был закодирован дважды
  • Используйте режим компонента при построении строк запроса и режим URL при кодировании целых путей URL или полных URL

Распространенные ошибки

  • Двойное кодирование URL путем кодирования уже закодированного URL, %20 превращается в %2520
  • Использование неправильного контекста кодирования — режим URL и компонентов производят разный вывод
  • Забывание что + представляет пробел только в данных application/x-www-form-urlencoded
  • Неправильная обработка не-ASCII символов — всегда убеждайтесь в кодировке UTF-8 перед процентным кодированием

Объяснение ключевых терминов

Процентное кодирование: Стандартный механизм кодирования символов в URL, заменяет небезопасные символы на % за которым следует двухзначный шестнадцатеричный ASCII-код
Строка запроса: Часть URL после символа ?, содержит пары ключ-значение разделенные &
Зарезервированные символы: Символы такие как :, /, ?, #, [, ], @, !, $, &, (, ), *, +, ,, ;, = со специальным синтаксическим значением в URL согласно RFC 3986
Режим компонентов vs режим URL: Режим компонентов кодирует больше символов и для отдельных значений; режим URL сохраняет структуру URL для полных путей

Связанные понятия

  • Процентное кодирование: механизм замены небезопасных символов знаком % с последующим двузначным шестнадцатеричным ASCII-кодом для безопасной передачи URL
  • Строка запроса: часть URL после символа ?, содержащая пары ключ-значение, разделённые символами &
  • Зарезервированные символы: символы вроде :, /, ?, #, [, ], @, !, $, &, (, ), *, +, ,, ;, =, имеющие особое значение в синтаксисе URL согласно RFC 3986
  • Безопасные для URL символы: незарезервированные символы (буквы, цифры, -, _, ., ~), не требующие кодирования в URL
  • encodeURIComponent против encodeURI: функции JavaScript, где encodeURIComponent для отдельных значений кодирует всё, кроме букв, цифр и _*-.~, а encodeURI сохраняет символы структуры URL для полных URL

Пример

Кодирование "Hello World & Friends!" → "Hello%20World%20%26%20Friends%21". Декодирование "search%3Fq%3Dhello+world" → "search?q=hello world".

Интерпретация результатов

Кодировщик преобразует небезопасные символы URL (пробелы, &, ?, #, не-ASCII и т. д.) в формат процентного кодирования, где каждый символ становится % с последующим двузначным шестнадцатеричным кодом. Декодировщик обращает этот процесс, восстанавливая исходный читаемый текст. Количество символов помогает убедиться, что кодирование не продублировало и не обрезало ваш ввод непредвиденно. Режим компонента кодирует более широкий набор символов и предназначен для кодирования отдельных значений параметров запроса. Режим URL строже в том, что кодируется, и предназначен для кодирования полных путей URL или целых URL. Используйте режим компонента при построении строк запроса и режим URL при кодировании полного URL. Пакетный режим позволяет кодировать или декодировать сразу несколько строк, что удобно, когда у вас есть список URL или параметров для обработки. Каждая строка рассматривается как отдельный ввод, и все результаты отображаются вместе для удобного копирования.

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

Почему URL нужно кодировать?
URL могут содержать только определённые символы ASCII. Такие символы, как пробелы, &, ?, # и не-ASCII символы, должны быть закодированы (процентно закодированы), чтобы обеспечить безопасную передачу через интернет.
Что такое процентное кодирование?
Процентное кодирование заменяет небезопасные символы знаком % с последующим двузначным шестнадцатеричным кодом. Например, пробел превращается в %20, а & — в %26.
Одинаково ли кодирование URL и кодирование HTML?
Нет. Кодирование URL (процентное кодирование) предназначено для URL. HTML-кодирование использует сущности вроде &amp; для & или &lt; для <. Они выполняют разные задачи в веб-разработке.
Когда использовать режим URL вместо режима компонента?
Используйте режим компонента при кодировании одного значения параметра запроса (например, поискового запроса). Используйте режим URL при кодировании полного пути URL или когда нужно, чтобы вся строка была безопасна для URL. Режим компонента кодирует больше символов, поскольку предполагает, что значение будет помещено внутри структуры URL.
Почему кодирование 'Hello World' даёт 'Hello%20World', а не 'Hello+World'?
В сегментах пути URL пробелы кодируются как %20. Кодирование пробелов знаком + используется только в данных application/x-www-form-urlencoded (отправка HTML-форм). Современная лучшая практика — последовательно использовать %20 в URL. Калькулятор использует %20 для кодирования URL.
Можно ли кодировать не-ASCII символы, такие как эмодзи или буквы с диакритикой?
Да. Не-ASCII символы сначала преобразуются в байты UTF-8, затем каждый байт процентно кодируется. Например, эмодзи ☺ (U+1F600) превращается в %F0%9F%98%80. Буквы с диакритикой, например é (U+00E9), превращаются в %C3%A9. Это стандартный подход, определённый в RFC 3986.
В чём разница между этим и HTML-кодированием сущностей?
Кодирование URL (процентное кодирование) предназначено для URL — оно преобразует символы в шестнадцатеричные коды %XX. HTML-кодирование сущностей преобразует символы в именованные или числовые сущности, такие как &amp; для & или &#8364; для €. Они служат совершенно разным целям и не взаимозаменяемы.
Почему некоторые URL работают без кодирования, даже если содержат специальные символы?
Современные браузеры автоматически кодируют URL при переходе по ним или отправке форм. Однако при программном построении URL (в коде, вызовах API или серверных редиректах) кодировать нужно вручную, потому что сервер не сделает это за вас.
Есть ли риск двойного кодирования?
Да. Если закодировать URL, который уже был закодирован, %20 превратится в %2520, что неверно. Всегда проверяйте, не закодирован ли уже ваш ввод, перед повторным кодированием. Этот калькулятор показывает декодированный вывод, чтобы вы могли убедиться в правильности результата.
Как работать с закодированными URL в JavaScript?
Используйте decodeURIComponent() для декодирования и encodeURIComponent() для кодирования отдельных значений. Для полных URL используйте decodeURI() и encodeURI(), которые сохраняют символы структуры URL (/, ?, # и т. д.). Никогда не используйте escape() или unescape() — они устарели и некорректно обрабатывают Unicode.

Откройте больше инструментов

Свежая подборка из всей нашей библиотеки инструментов.