JavaScript. Подробное руководство, 6-е издание, стр. 422

См. также

decodeURIO, encodeURI(), encodeURIComponent(), escape(), unescape()

encodeURI()

выполняет кодирование URI с помощью управляющих последовательностей

Синтаксис

<b>encodeURI(uri)</b>

Аргументы

uri Строка, содержащая URI или другой текст, который должен быть закодирован.

Возвращаемое значение

Копия аргумента uri, в которой некоторые символы заменены шестнадцатеричными управляющими последовательностями.

Исключения

<b>URIError</b>
Указывает, что строка uri содержит искаженные суррогатные пары символов Юникода и не может быть закодирована.

Описание

<b>encodeURI()</b>
- это глобальная функция, возвращающая закодированную копию аргумента uri. Не кодируются символы, цифры и следующие знаки пунктуации ASCII:

<b>- _ . ! ~ * ' ( )</b>

Функция encodeURI() кодирует URI целиком, поэтому следующие символы пунктуации, имеющие в URI специальное значение, также не кодируются:

<b>; / ? : @ &amp; = + $ , #</b>

Любые другие символы в uri заменяются путем преобразования символа в его код UTF-8 и последующего кодирования каждого из полученных байтов шестнадцатиричной управляющей последовательностью в формате %хх. В этой схеме кодирования ASCII-символы заменяются одной последовательностью %хх, символы с кодами от \u0080 до \u07ff - двумя управляющими последовательностями, а все остальные 16-раз-рядные символы Юникода - тремя управляющими последовательностями.

При использовании этого метода для кодирования URI необходимо быть уверенным, что ни один из компонентов URI (например, строка запроса) не содержит символов-разделителей URI, таких как ? и #. Если компоненты могут содержать эти символы, необходимо кодировать каждый компонент отдельно с помощью функции

encodeURIComponent().

Метод decodeURIO предназначен для выполнения действия, обратного кодированию. До выхода ECMAScript v3 с помощью методов escape() и unescape(), сейчас признанных устаревшими, выполнялись сходные кодирование и декодирование.

Пример

<b>// Возвращает </b><a href="http://www.isp.com/app.cgi?arg1=1&arg2=hello%20world"><b>http://www.isp.com/app.cgi?arg1=1&amp;arg2=hello%20world</b></a>

<b>encodeURI(&quot;</b><a href="http://www.isp.com/app.cgi?arg1=1&arg2=hello"><b>http://www.isp.com/app.cgi?arg1=1&amp;arg2=hello</b></a><b> world&quot;); </b>

<b>encodeURI(&quot;\u00a9&quot;); // Символ копирайта кодируется в %С2%А9</b>

См. также

decodeURIO, decodeURIComponent(), encodeURIComponent(), escape(), unescape()

encodeURIComponent()

выполняет кодирование компонентов URI с помощью управляющих последовательностей

Синтаксис

<b>encodeURIComponent(s)</b>

Аргументы

s Строка, содержащая фрагмент URI или другой текст, подлежащий кодированию.

Возвращаемое значение

Копия s, в которой определенные символы заменены шестнадцатеричными управляющими последовательностями.

Исключения

<b>URIError</b>
Указывает, что строка s содержит искаженные суррогатные пары символов Юникода и не может быть закодирована.

Описание

<b>encodeURIComponent()</b>
- это глобальная функция, возвращающая закодированную копию своего аргумента s. Не кодируются буквы, цифры и следующие знаки пунктуации ASCII:

<b>- _ . ! ~ * ' ( )</b>

Все остальные символы, в том числе такие символы пунктуации, как / : #, служащие для разделения различных компонентов URI, заменяются одной или несколькими шестнадцатеричными управляющими последовательностями. Описание используемой схемы кодирования см. в статье, посвященной функции

<b>encodeURI()</b>
.

Обратите внимание на разницу между

<b>encodeURIComponent()</b>
и
<b>encodeURI():</b>
функция
<b>encodeURIComponent()</b>
предполагает, что ее аргументом является фрагмент URI (такой* как протокол, имя хоста, путь или строка запроса). Поэтому она преобразует символы пунктуации, используемые для разделения фрагментов URI.

Пример

<b>encodeURIComponent(&quot;hello world?&quot;); // Вернет hello%20world%3F</b>

См. также

decodeURIO, decodeURIComponent(), encodeURI(), escape(), unescape()

Error

Error

обобщенное исключение (Object—>Error)

Конструктор

<b>new Error()</b>

<b>new Error (сообщение)</b>

Аргументы

сообщение Необязательное сообщение об ошибке с дополнительной информацией об исключении.

Возвращаемое значение

Вновь созданный объект

<b>Error</b>
. Если задан аргумент сообщение, объект
<b>Error</b>
будет использовать его в качестве значения своего свойства message; в противном случае он возьмет в качестве значения этого свойства строку по умолчанию, определенную реализацией. Когда конструктор
<b>Error()</b>
вызывается как функция (без оператора
<b>new</b>
), он ведет себя так же, как при вызове с оператором
<b>new</b>
.

Свойства

<b>message</b>

Сообщение об ошибке с дополнительной информацией об исключении. В этом свойстве хранится строка, переданная конструктору, или строка по умолчанию, определяемая реализацией.

<b>name</b>

Строка, задающая тип исключения. Для экземпляров класса Error и всех его подклассов это свойство задает имя конструктора, с помощью которого был создан экземпляр.