Разница между функциями decodeURIComponent () и decodeURI () в JavaScript

Опубликовано: 10 Декабря, 2021

Как decodeURI (), так и decodeURIComponent () являются глобальными функциями Javascript, которые используются для декодирования закодированного URI (унифицированного идентификатора ресурса).

Функция decodeURI (): декодирует строку, ранее закодированную функцией encodeURI (). Он возвращает декодированный URI, заменяя каждую escape-последовательность UTF-8 символами, которые она представляет.

  • Синтаксис:
     decodeURI (encodeURI (x));
  • Параметр Он содержит единственный параметр, который включает строку, ранее закодированную функцией encodeURI (), и, следовательно, результатом снова будет x.
  • Пример: В этом примере используется функция decodeURI () .
    <!DOCTYPE html>
    < html >
    < head >
    < title >decodeURI() Example</ title >
    </ head >
    < body >
    < script type = "text/javascript" >
    var decodeText1 = decodeURI(' http://www.testing.com/ ');
    document.write(decodeText1);
    document.write("< br >");
    var decodeText2 = decodeURI('http%3A%2F%2Fwww.testing.com%2F');
    document.write(decodeText2);
    </ script >
    </ body >
    </ html >
  • Выход:
    http://www.testing.com/
    http% 3A% 2F% 2Fwww.testing.com% 2F
    

Функция decodeURIComponent (): декодирует строку, ранее закодированную функцией encodeURIComponent (). Он возвращает декодированный компонент URI, заменяя каждую escape-последовательность UTF-8 символами, которые она представляет. Он может декодировать любое значение от% 00 до% 7F.

  • Синтаксис:
     decodeURIComponent (encodeURIComponent (x));
  • Параметр Единственный параметр, который включает строку, ранее закодированную с помощью encodeURIComponent (), и, следовательно, результатом снова будет x.
  • Пример: этот пример находится на decodeURIComponent ()
    <!DOCTYPE html>
    < html >
    < head >
    < title >decodeURIComponent() Example</ title >
    </ head >
    < body >
    < script type = "text/javascript" >
    var decodeText1 = decodeURIComponent(
    document.write(decodeText1);
    document.write("< br >");
    var decodeText2 = decodeURIComponent(
    'http%3A%2F%2Fwww.testing.com%2F');
    document.write(decodeText2);
    </ script >
    </ body >
    </ html >
  • Выход:
     http://www.testing.com/
    http://www.testing.com/
    

Примечание. Обе функции выдают ошибку URIError, указывающую на то, что одна или несколько управляющих последовательностей в строке имеют неправильный формат и не могут быть правильно декодированы.

Разница между функциями decodeURIComponent () и decodeURI ():

    Оба могут декодировать буквенно-цифровые символы и - _. ! ~ * '() даже символы, но,

  • decodeURI (): требуется строка encodeURI (url), поэтому он не может декодировать символы (, /?: @ & = + $ #)
  • decodeURIComponent (): для декодирования этих символов требуется строка encodeURIComponent (url).
  • decodeURI (): принимает строку encodeURI (url) в качестве параметра и возвращает декодированную строку.
  • decodeURIComponent (): принимает строку encodeURIComponent (url) в качестве параметра и возвращает декодированную строку.
  • decodeURI («% 41»): возвращает «A»
  • decodeURIComponent («% 41») Возвращает «A»
  • decodeURI («% 26»): возвращает «% 26»
  • decodeURIComponent («% 26»): возвращает «&»