Процентное кодирование URL, кодирование и декодирование с поддержкой любого текста / не-ASCII символов
URL-кодирование (также называемое процентным кодированием) — это механизм, преобразующий специальные символы в URL в знак %, за которым следуют две шестнадцатеричные цифры. Согласно RFC 3986, URL может содержать только подмножество символов ASCII; другие символы (такие как не-ASCII символы, пробелы и специальные знаки) должны быть закодированы.
В JavaScript encodeURIComponent() кодирует параметры запроса URL — он кодирует каждый символ, кроме A-Z a-z 0-9 - _ . ! ~ * ' ( ). encodeURI() сохраняет структурные символы URL (такие как : / ? # & =).
Распространённые сценарии URL-кодирования: кодирование параметров AJAX-запросов, обработка не-ASCII символов в путях URL и кодирование параметров в подписях OAuth.
Входные данные: Привет, мир! → Результат: %D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82%2C%20%D0%BC%D0%B8%D1%80!
Входные данные: hello world! → Результат: hello%20world!
encodeURI не кодирует структурные символы URL (:/?#&=+@$), поэтому подходит для кодирования полного URL; encodeURIComponent кодирует больше символов и подходит для кодирования значений параметров запроса. Этот инструмент использует encodeURIComponent.encodeURIComponent кодирует пробел как %20. В формате application/x-www-form-urlencoded (например, при отправке формы) пробелы кодируются как +. Оба варианта допустимы.%XX, включая буквы и цифры ASCII. Полезен в особых случаях, например когда нужно полностью скрыть содержимое URL.