Movatterモバイル変換


[0]ホーム

URL:


  1. Веб-технологии для разработчиков
  2. JavaScript
  3. Справочник по JavaScript
  4. Стандартные встроенные объекты
  5. encodeURI()

This page was translated from English by the community.Learn more and join the MDN Web Docs community.

View in EnglishAlways switch to English

encodeURI()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨июль 2015 г.⁩.

МетодencodeURI () кодирует универсальный идентификатор ресурса (URI), замещая некоторые символы на одну, две, три или четыре управляющие последовательности, представляющие UTF-8 кодировку символа (четыре управляющие последовательности будут использованы только для символов, состоящих из двух «суррогатных» символов).

Интерактивный пример

const uri = "https://mozilla.org/?x=шеллы";const encoded = encodeURI(uri);console.log(encoded);// Expected output: "https://mozilla.org/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B"try {  console.log(decodeURI(encoded));  // Expected output: "https://mozilla.org/?x=шеллы"} catch (e) {  // Catches a malformed URI  console.error(e);}

Синтаксис

encodeURI(URI)

Параметры

URI

ПолныйURI.

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

Новая строка, представляющая собой строку-параметр, закодированную в виде универсального идентификатора ресурса (URI).

Описание

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

encodeURI заменяет все символы,кроме следующих с соответствующими UTF-8 управляющими последовательностями:

ТипВключения
Зарезервированные символы;,/?:@&=+$
Неэкранируемые символылатинские буквы, десятичные цифры,-_.!~*'()
Score#

Заметим, чтоencodeURI сам по себе не может сформировать правильные HTTP GET и POST запросы, такие как XMLHTTPRequests, потому, что "&", "+", и "=" не закодированы, которые воспринимаются как специальные символы в GET и POST запросах.encodeURIComponent, однако, кодирует эти символы

Замечание:URIError будет брошена, если попытаться закодировать суррогат, который не является частью высоко-низкой пары, например:

js
// низко-высокая пара - нормальноconsole.log(encodeURIComponent("\uD800\uDFFF"));// один высокий суррогат бросит "URIError: malformed URI sequence"console.log(encodeURIComponent("\uD800"));// один низкий суррогат бросит "URIError: malformed URI sequence"console.log(encodeURIComponent("\uDFFF"));

Также заметим, что следуя наиболее свежейRFC3986 для URL, которая делает квадратные скобки защищёнными (для IPv6) и таким образом не кодирует, когда формирование чего-либо, не являющегося частью URL (такое как домен), следующий сниппет поможет:

js
function fixedEncodeURI(str) {  return encodeURI(str).replace(/%5B/g, "[").replace(/%5D/g, "]");}

Спецификации

Specification
ECMAScript® 2026 Language Specification
# sec-encodeuri-uri

Совместимость с браузерами

Смотрите также

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp