Книга: JavaScript. Подробное руководство, 6-е издание
decodeURI
Разделы на этой странице:
decodeURI
decodeURI()
декодирует символы в URI
Синтаксис
decodeURI(uri)
Аргументы
uri Строка, содержащая в закодированном виде URI (Uniform Resource Identifier -унифицированный идентификатор ресурса) или другой текст, подлежащий декодированию.
Возвращаемое значение
Копия аргумента uri, в которой все шестнадцатеричные управляющие последовательности заменены на символы, которые они представляют.
Исключения
URIError
Означает, что одна или несколько управляющих последовательностей в uri имеют неверный формат и не могут быть правильно декодированы.
Описание
decodeURI()
- это глобальная функция, возвращающая декодированную копию аргумента uri. Она выполняет действие, обратное действию функции encodeURI();
подробности см. в описании этой функции.
См. также
decodeURIComponent(), encodeURI(), encodeURIComponent(), escape(), unescape()
decodeURIComponent()
декодирует управляющие последовательности символов в компоненте URI
Синтаксис
decodeURIComponent(s)
Аргументы
s Строка, содержащая закодированный компонент URI или другой текст, который должен быть декодирован.
Возвращаемое значение
Копия аргумента s, в которой шестнадцатеричные управляющие последовательности заменены представляемыми ими символами.
Исключения
URIError
Означает, что одна или несколько управляющих последовательностей в аргументе s имеют неверный формат и не могут быть правильно декодированы.
Описание
decodeURIComponent()
- глобальная функция, возвращающая декодированную копию своего аргумента s. Ее действие обратно кодированию, выполняемому функцией encodeURIComponent();
подробности см. в справочной статье по этой функции.
См. также
decodeURIO, encodeURI(), encodeURIComponent(), escape(), unescape()
encodeURI()
выполняет кодирование URI с помощью управляющих последовательностей
Синтаксис
encodeURI(uri)
Аргументы
uri Строка, содержащая URI или другой текст, который должен быть закодирован.
Возвращаемое значение
Копия аргумента uri, в которой некоторые символы заменены шестнадцатеричными управляющими последовательностями.
Исключения
URIError
Указывает, что строка uri содержит искаженные суррогатные пары символов Юникода и не может быть закодирована.
Описание
encodeURI()
- это глобальная функция, возвращающая закодированную копию аргумента uri. Не кодируются символы, цифры и следующие знаки пунктуации ASCII:
- _ . ! ~ * ' ( )
Функция encodeURI() кодирует URI целиком, поэтому следующие символы пунктуации, имеющие в URI специальное значение, также не кодируются:
; / ? : @ & = + $ , #
Любые другие символы в uri заменяются путем преобразования символа в его код UTF-8 и последующего кодирования каждого из полученных байтов шестнадцатиричной управляющей последовательностью в формате %хх. В этой схеме кодирования ASCII-символы заменяются одной последовательностью %хх, символы с кодами от u0080 до u07ff - двумя управляющими последовательностями, а все остальные 16-раз-рядные символы Юникода - тремя управляющими последовательностями.
При использовании этого метода для кодирования URI необходимо быть уверенным, что ни один из компонентов URI (например, строка запроса) не содержит символов-разделителей URI, таких как ? и #. Если компоненты могут содержать эти символы, необходимо кодировать каждый компонент отдельно с помощью функции encodeURIComponent().
Метод decodeURIO предназначен для выполнения действия, обратного кодированию. До выхода ECMAScript v3 с помощью методов escape() и unescape(), сейчас признанных устаревшими, выполнялись сходные кодирование и декодирование.
Пример
// Возвращает http://www.isp.com/app.cgi?arg1=1&arg2=hello%20world
encodeURI("http://www.isp.com/app.cgi?arg1=1&arg2=hello world");
encodeURI("u00a9"); // Символ копирайта кодируется в %С2%А9
См. также
decodeURIO, decodeURIComponent(), encodeURIComponent(), escape(), unescape()
encodeURIComponent()
выполняет кодирование компонентов URI с помощью управляющих последовательностей
Синтаксис
encodeURIComponent(s)
Аргументы
s Строка, содержащая фрагмент URI или другой текст, подлежащий кодированию.
Возвращаемое значение
Копия s, в которой определенные символы заменены шестнадцатеричными управляющими последовательностями.
Исключения
URIError
Указывает, что строка s содержит искаженные суррогатные пары символов Юникода и не может быть закодирована.
Описание
encodeURIComponent()
- это глобальная функция, возвращающая закодированную копию своего аргумента s. Не кодируются буквы, цифры и следующие знаки пунктуации ASCII:
- _ . ! ~ * ' ( )
Все остальные символы, в том числе такие символы пунктуации, как / : #, служащие для разделения различных компонентов URI, заменяются одной или несколькими шестнадцатеричными управляющими последовательностями. Описание используемой схемы кодирования см. в статье, посвященной функции encodeURI()
.
Обратите внимание на разницу между encodeURIComponent()
и encodeURI():
функция encodeURIComponent()
предполагает, что ее аргументом является фрагмент URI (такой* как протокол, имя хоста, путь или строка запроса). Поэтому она преобразует символы пунктуации, используемые для разделения фрагментов URI.
Пример
encodeURIComponent("hello world?"); // Вернет hello%20world%3F
См. также
decodeURIO, decodeURIComponent(), encodeURI(), escape(), unescape()