Кодирование URL
Некоторые символы не могут появляться в URL (например, в пробелах), другие имеют особое значение в URL. Необходимо преобразовать специальные символы в соответствие синтаксису, определённому в спецификации W3 URI (RFC 3986). Это означает, что URL должны содержать только подмножество специального ASCII-символа: знакомые нам буквы и цифры, а также некоторые зарезервированные символы, используемые в качестве контрольных символов в URL.
Обработка кодирования URL в JavaScript
В JavaScript как встроенные функции encodeURIComponent(), так и encodeURI() могут кодироваться по URL, заменяя зарезервированные символы в URL на их символы, закодированные в UTF-8.
Большинство браузеров автоматически кодируют URL, например, кодируют пространства до 20%, но всегда бывают исключения. К счастью, браузеры предоставляют встроенные функции кодирования и декодирования URL: encodeURI, encodeURIComponent и decodeURI, decodeURIComponent. Вопрос в том, как использовать эти функции и в чём их разница.
encodeURI()
Кодирование строки по URL просто, просто вызовите encodeURI и передайте ту строку, которую хотите закодировать. Эта функция возвращает закодированный URL.
decodeURI()
Эта функция декодирует и вызывает функцию decodeURI, передавая закодированную строку, а затем возвращает декодированную нормальную строку.
encodeURIComponent()
Функция encodeURIComponent должна использоваться для кодирования значений параметров строки запроса. Разница между encodeURI и encodeURIComponent в том, что encodeURIComponent кодирует всю строку, а encodeURI игнорирует префикс протокола ('http://'), а также доменное имя. encodeURIComponent предназначен для кодирования всего, в то время как encodeURI игнорирует часть доменного имени в URL. Когда тыКогда вы хотите закодировать значение параметра в URL, выберите функцию encodeURIComponent。
decodeURIComponent()
Функция decodeURIComponent декодирует закодированную строку функции encodeURIComponent и восстанавливает её в нормальном состоянии.
Обзор:
|