JavaScript метод encodeURI()

JavaScript объект Global

Определение и применение

JavaScript метод encodeURI() объекта Global кодирует URI (англ. Uniform Resource Identifier – унифицированный идентификатор ресурса) заменяя каждый экземпляр определенных символов одной, двумя, тремя или четырьмя управ­ляю­щих по­сле­до­ва­тель­но­стей, представляющими кодировку символа UTF-8. Для того, чтобы декодировать URI, ранее созданный функцией encodeURI() вы можете воспользоваться методом decodeURI().

Обращаю Ваше внимание на то, что метод encodeURI() не кодирует зарезервированные символы, имеющие особое значение в URI, а именно:

A-Z a-z 0-9 ; , / ? : @ & = + $ - _ . ! ~ * ' ( ) #

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

Метод encodeURIComponent() отличается от метода encodeURI(). Метод encodeURIComponent() предполагает, что его параметр является не весь URI, а лишь фрагмент URI (такой как протокол, имя хоста, путь или строка запроса). По этой причине он преобразует все символы за исключением следующих:

A-Z a-z 0-9 - _ . ! ~ * ' ( )

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

Отличие методов encodeURIComponent() и encodeURI() вы можете увидеть в примере ниже.

Поддержка браузерами

МетодChrome
Chrome
Firefox
Firefox
Opera
Opera
Safari
Safari
Internet Explorer
IExplorer
Microsoft Edge
Edge
encodeURI()ДаДаДаДаДаДа

JavaScript синтаксис:

encodeURI(URI); 

URI - String

Версия JavaScript

ECMAScript 3rd Edition (ECMA-262)

Значения параметров

ПараметрОписание
URI Uniform Resource Identifier – унифицированный идентификатор ресурса.

Исключения

Тип исключенияОписание
URIErrorВозникает в том случае, если строка URI (унифицированный идентификатор ресурса) содержит искаженные суррогатные пары символов Юникода и не может быть закодирована.

Пример использования

Базовое использование

const uri = "https://basicweb.ru/?q=справочник";
const encoded = encodeURI(uri); // кодируем URI
console.log(encoded); // "https://basicweb.ru/?q=%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA"

const decoded = decodeURI(encoded); // декодируем URI
console.log(decoded); // "https://basicweb.ru/?q=справочник"

Отличие работы методов encodeURIComponent() и encodeURI()

const str1 = ";,/?:@&=+$";        		// Reserved Characters
const str2 = "-_.!~*'()";         		// Unescaped Characters
const str3 = "#";                 			// Number Sign
const str4 = "AZZZ zasdsd 19999";  // Alphanumeric Characters + Space

console.log(encodeURI(str1));                       // ;,/?:@&=+$
console.log(encodeURIComponent(str1));  // %3B%2C%2F%3F%3A%40%26%3D%2B%24

console.log(encodeURI(str2));          			// -_.!~*'()
console.log(encodeURIComponent(str2));      // -_.!~*'()

console.log(encodeURI(str3));         		   // #
console.log(encodeURIComponent(str3)); // %23

console.log(encodeURI(str4));          		   // AZZZ%20zasdsd%2019999
console.log(encodeURIComponent(str4)); // AZZZ%20zasdsd%2019999
JavaScript объект Global
×

Кажется, вы используете блокировщик рекламы :(

Этот ресурс не является коммерческим проектом и развивается на энтузиазме автора сайта, который посвящает все свое свободное время этому проекту.

Добавьте, пожалуйста, basicweb.ru в исключения блокировщика рекламы, этим вы поможете развитию проекта.