Перейти к основному содержимому
FreeOnlineTools Go
Русский
Как

Как кодировать и декодировать URL: Полное руководство

Автор: FreeOnlineTools Team · Обновлено 2026-08-28

Быстрый ответ

URL-кодирование преобразует unsafe символы в %XX-последовательности, где XX — hex-значение байта. Пробелы становятся %20 (или + в form data), китайские символы — multi-byte %XX-последовательностями. Используйте наш бесплатный URL Encoder и URL Decoder —вся обработка локально.

Введение

URL-кодирование, также percent-encoding, — механизм кодирования reserved и unsafe символов в URL для безопасной передачи через интернет. URL могут содержать только ограниченный набор ASCII-символов; любой другой символ (пробелы, не-ASCII буквы, символы) должен быть percent-кодирован как последовательность, начинающаяся с %, за которой следуют две hex-цифры.

Шаг за шагом

  1. Определите, что требует кодирования

    Символы, не входящие в незарезервированный набор (AZ, a-z, 0-9, -, ., _, ~), должны быть закодированы в процентах. Сюда входят пробелы, разделители запросов, такие как = и &, косая черта и все символы, отличные от ASCII, такие как китайский, арабский или эмодзи.

  2. Закодируйте URL или строку запроса.

    Вставьте текст в инструмент кодировщика URL. Он использует encodeURIComponent() для кодирования каждого зарезервированного символа. Результат мгновенно появляется в поле вывода.

  3. Скопируйте закодированный результат

    Нажмите кнопку «Копировать», чтобы скопировать строку в процентном кодировании. Теперь вы можете безопасно встроить его в параметр запроса URL, запрос API или отправку формы.

  4. Раскодируйте закодированный URL

    Вставьте закодированный URL или строку запроса в инструмент декодера URL. Он использует decodeURIComponent() для восстановления исходных символов. Убедитесь, что декодированный вывод соответствует вашим ожиданиям.

  5. Проверка крайних случаев

    Убедитесь, что пробелы декодируются правильно (%20 или +), что многобайтовые последовательности UTF-8 декодируются до правильного символа и что уже закодированные строки не кодируются дважды.

Примеры

Кодировать текст с пробелом

Вход: Hello World

Выход: Hello%20World

Кодирование разделителя пути

Вход: a/b

Выход: a%2Fb

Кодируйте китайские символы (UTF-8)

Вход: 你好

Выход: %E4%BD%A0%E5%A5%BD

Декодировать закодированный параметр запроса

Вход: key%3Dvalue%26foo%3Dbar

Выход: key=value&foo=bar

Распространенные проблемы

  • Двойное кодирование: кодирование уже закодированной строки превращает %20 в %2520. Перед повторным кодированием всегда проверяйте, закодирован ли уже ввод.
  • Путаница encodeURI с encodeURIComponent: encodeURI сохраняет зарезервированные символы, такие как /, ? и &, нетронутыми для полного URLs, тогда как encodeURIComponent кодирует все для значений параметров запроса.
  • Обработка пространства: %20 — это форма с процентным кодированием; + действителен только в данных тела приложения/x-www-form-urlencoded, а не в пути URL или строке запроса согласно RFC 3986.
  • Устаревшие кодировки, отличные от UTF-8: современные браузеры кодируют как UTF-8, но устаревшие системы могут использовать GBK или Latin-1, вызывая моджибаке при декодировании на другой стороне.

Советы

  • Используйте encodeURIComponent() для отдельных значений параметров запроса и encodeURI() для всего URLs, который уже правильно сформирован.
  • При построении строк запроса кодируйте значение, а не разделители = или & — кодируйте каждое значение отдельно, а затем объединяйте его с помощью &.
  • Используйте наши инструменты кодирования и декодера URL для отладки вызовов API, которые возвращают 400 ошибок из-за неверных строк запроса.
  • Всегда декодируйте на стороне сервера, используя одну и ту же кодировку символов (UTF-8), чтобы избежать моджибаке.

Сопутствующие инструменты

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

Ссылки