Кодировщик URL
Кодируйте текст или URL процентным кодированием в стиле JavaScript. Введите значение в поле «Текст или URL», чтобы получить закодированную строку, которую можно скопировать.
Инструмент кодирования строки в URL
Формула кодировщика URL
Где:
- \(S\) — значение, введённое в поле «Текст или URL».
- \(E\) — закодированный результат, отображаемый под «Закодированный URL».
Калькулятор удаляет начальные и конечные пробелы, а затем применяет функцию JavaScript encodeURIComponent. Символы, подлежащие кодированию, представляются знаком процента, за которым следуют шестнадцатеричные цифры для каждого байта UTF-8.
Кодировщик URL — пример вычисления
Пример: введите значение по умолчанию, https://calcdash.com/tools?utm_source=chat, в поле «Текст или URL».
\[ \operatorname{encodeURIComponent}(S) = \texttt{https\%3A\%2F\%2Fcalcdash.com\%2Ftools\%3Futm\_source\%3Dchat} \]
Результат: https%3A%2F%2Fcalcdash.com%2Ftools%3Futm_source%3Dchat.
Как пользоваться кодировщиком URL
- Введите или вставьте значение, которое нужно закодировать, в поле «Текст или URL». Это может быть слово, значение параметра запроса, сегмент пути или полный URL.
- Прочитайте результат под надписью «Закодированный URL». Калькулятор кодирует всё введённое значение после удаления пробелов в его начале и конце.
- Скопируйте результат и вставьте туда, где требуется закодированное значение. Если вы ввели полный URL, не считайте, что результат — это ссылка, которую можно открыть напрямую: его структурные символы тоже были закодированы.
Что делает URL-кодирование
Процентное кодирование представляет определённые символы знаком процента и шестнадцатеричными цифрами. Оно позволяет включать в данные символы, которые иначе имели бы особое значение в URL. Например, пробел превращается в %20, амперсанд — в %26, а буквальный знак процента — в %25. Каждый кодируемый байт получает свою процентную последовательность, поэтому символ вне диапазона ASCII может дать несколько последовательностей.
Этот калькулятор использует encodeURIComponent, который предназначен для отдельного компонента URL. Он кодирует разделители, такие как :, /, ?, & и =. Это делает его полезным, когда значение не должно быть принято за часть структуры URL. Например, кодирование значения параметра запроса red shoes & boots даёт red%20shoes%20%26%20boots. Амперсанд остаётся частью значения, а не разделителем двух параметров.
Пример по умолчанию показывает, почему это различие важно: кодирование полного URL превращает https:// в https%3A%2F%2F. Результат — закодированная строка, представляющая этот URL, а не тот же самый рабочий URL. Если вы собираете ссылку, сохраняйте её структурные разделители нетронутыми и кодируйте только те значения, которым это нужно. Чтобы превратить закодированный текст обратно в читаемый, используйте декодер URL.
Допущения и практические советы
- Внешние пробелы удаляются. Калькулятор обрезает пробелы и другие окружающие символы пустого пространства перед кодированием. Пробелы внутри значения сохраняются; обычные внутренние пробелы превращаются в
%20. Если начальные или конечные пробелы являются значимыми данными, этот инструмент их не сохранит. - Некоторые символы остаются без изменений. Буквы, цифры и символы
- _ . ! ~ * ' ( )не кодируются функциейencodeURIComponent. Неизменённый символ не означает, что калькулятор пропустил ввод. - Кодируйте значение только один раз. Существующая последовательность вроде
%20содержит буквальный знак процента. Повторное кодирование даст%2520. Если нужно заменить уже закодированное значение, сначала декодируйте его. - Пробелы здесь — не знаки плюс. Этот инструмент выводит
%20для пробела и%2Bдля буквального знака плюс. В некоторых HTML-формах для пробелов используется+; этот калькулятор не применяет такое соглашение кодирования форм. - Кодирование — это не шифрование. Любой может декодировать результат, поэтому не используйте его для сокрытия паролей или другой конфиденциальной информации. Редкое некорректное текстовое значение, содержащее непарный суррогат UTF-16, также может привести к сбою кодирования в JavaScript.
Если сначала нужно собрать ссылки из более объёмного текста, используйте извлекатель URL. Если ваша задача требует Base64, а не процентного кодирования, используйте кодировщик Base64; эти два формата служат разным целям и дают разные результаты.
Часто задаваемые вопросы
Как закодировать текст в URL вручную?
Преобразуйте каждый символ, подлежащий кодированию, в его байты UTF-8, затем запишите каждый байт как знак процента, за которым следуют две шестнадцатеричные цифры. Например, обычный пробел — это байт 20 в шестнадцатеричной системе, поэтому он превращается в %20. Разрешённые символы оставляйте без изменений. Для длинных строк надёжнее использовать инструмент, поскольку один видимый символ может занимать несколько байтов.
В чём разница между encodeURI и encodeURIComponent?
Функция encodeURI в JavaScript предназначена для полного URL и оставляет без изменений структурные символы, такие как :, /, ? и &. Функция encodeURIComponent кодирует эти символы, поскольку рассматривает ввод как единое значение. Используйте encodeURIComponent для значения параметра запроса или сегмента пути; для сборки полной ссылки применяйте API для построения URL.
Как кодируются в URL буквы с диакритикой и эмодзи?
Они преобразуются в байты UTF-8 перед процентным кодированием. Например, é превращается в %C3%A9, потому что его представление в UTF-8 состоит из двух байтов. Эмодзи может потребовать четыре процентные последовательности. Количество последовательностей отражает число байтов, а не число символов, которые вы видите на экране.
Как закодировать несколько параметров запроса, не кодируя их разделители?
Закодируйте каждое имя параметра и каждое значение по отдельности, затем соедините каждую пару символом =, а пары между собой — символом &. В JavaScript эту сборку может выполнить за вас URLSearchParams, хотя он может отображать пробелы как + по правилам кодирования форм. Не кодируйте собранную строку запроса как единый компонент: это закодировало бы и её разделители.
Эквивалентны ли и в URL?
Да. Шестнадцатеричные буквы в процентных последовательностях нечувствительны к регистру, поэтому %2F и %2f оба обозначают байт косой черты. Кодировщики обычно выводят заглавные буквы. Однако будьте внимательны с местом размещения закодированной косой черты: серверы и системы маршрутизации могут интерпретировать её по-разному после декодирования, особенно внутри сегмента пути.
Совпадает ли URL-кодирование с заменой символов HTML-сущностями?
Нет. Процентное кодирование используется внутри URL; HTML-сущности применяются при написании HTML. Например, буквальный амперсанд в значении URL превращается в %26, тогда как амперсанд в HTML-коде может быть записан как &. Если URL встречается в HTML, оба правила могут действовать на разных этапах. Не подставляйте HTML-сущность вместо процентно-кодированного значения URL.