Что делает инструмент
URL-кодирование, или процентное кодирование (percent-encoding), заменяет символы, которые недопустимы в URL или имеют в нём особое значение, на % и две шестнадцатеричные цифры. Пробел становится %20, амперсанд — %26, а текст не в ASCII, например 中文, сначала переводится в байты UTF-8, и затем каждый байт записывается как %XX.
Этот инструмент кодирует текст, чтобы его можно было безопасно вставить в query-строку, сегмент пути или API-запрос, и декодирует обратно в читаемый текст строки с процентным кодированием, скопированные из логов, адресной строки браузера или HTTP-трассировок.
Как пользоваться
- Вставьте текст или URL в поле Ввод либо нажмите Пример.
- Выберите Кодировать или Декодировать.
- При кодировании выберите Компонент, чтобы закодировать одно значение (например, поисковый запрос), или Весь URL, чтобы сохранить
:,/,?,&и=нетронутыми. - Включите Пробел как + для данных HTML-форм и Каждую строку отдельно, чтобы обработать сразу список значений.
- Скопируйте или скачайте результат. Если декодирование не удалось, ошибка укажет позицию сломанной escape-последовательности.
Пример
Кодирование поискового запроса hello world & more как компонента даёт:
hello%20world%20%26%20more
Декодирование q=%E4%BD%A0%E5%A5%BD даёт q=你好.
Когда что использовать
- Собираете query-строку вручную: кодируйте каждое значение как компонент, затем соединяйте их через
&и=. - Приводите в порядок полную ссылку с пробелами или китайскими символами: используйте Весь URL, чтобы сохранить структуру ссылки.
- Читаете логи сервера: декодируйте с включённым Пробел как +, потому что многие серверы записывают данные форм именно в этом формате.
Частые вопросы
› Чем отличаются «Компонент» и «Весь URL»?
«Компонент» кодирует все зарезервированные символы, включая / ? & = и #, поэтому результат можно безопасно поместить в один параметр запроса или сегмент пути. Это соответствует encodeURIComponent в JavaScript. «Весь URL» оставляет эти символы, чтобы адрес по-прежнему работал как ссылка, что соответствует encodeURI.
› Пробел должен становиться %20 или +?
Используйте %20 для путей и большинства API. + используйте только для данных HTML-форм (application/x-www-form-urlencoded) — именно так браузеры отправляют форму. Для этого случая включите «Пробел как +».
› Почему при декодировании появляется "not valid UTF-8"?
Байты %XX не образуют полный символ UTF-8 — обычно потому, что текст обрезан посередине многобайтового символа или был закодирован в устаревшей кодировке, например GBK или Latin-1.
› Отправляются ли мои данные на сервер?
Нет. Кодирование и декодирование полностью выполняются в вашем браузере.