Movatterモバイル変換


[0]ホーム

URL:


  1. Tecnologia Web para desenvolvedores
  2. JavaScript
  3. Referência JavaScript
  4. Objetos Globais
  5. encodeURI()

Esta página foi traduzida do inglês pela comunidade.Saiba mais e junte-se à comunidade MDN Web Docs.

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 ⁨julho de 2015⁩.

A funçãoencodeURI() codifica aURI substituindo cada instância de certos caracteres por um, dois, três ou quatro sequências de escape representando a codificaçãoUTF-8 do caracter (será somente quatro sequências de escape para caracteres compostos de dois caracteres substitutos).

Experimente

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);}

Sintaxe

encodeURI(URI)

Parâmetros

URI

Uma URI completa.

Valor de retorno

Uma nova cadeia de caracteres representando a cadeia de caracteres provida, codificada como uma URI.

Descrição

A funçãoencodeURI() não codifica caracteres que possuem significado especial (caracteres reservados) para a URI. O exemplo seguinte mostra todas as partes que o "esquema" da URI pode possivelmente conter. Note como certos caracteres são usados para dar significado especial:

http://username:password@www.example.com:80/path/to/file.php?foo=316&bar=this+has+spaces#anchor

Consequentemente,encodeURI()não codifica caracteres que são necessários para formular uma URI completa. Também,encodeURI()não codifica alguns caracteres adicionais, conhecidos como "marcas não reservadas (unreserved marks)", que não tem propósito reservado mas são permitidos na URI "como são". (VejaRFC2396)

encodeURI() escapa todos os caracteresexceto:

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

Exemplos

encodeURI vs encodeURIComponent

encodeURI() se difere deencodeURIComponent() como a seguir:

js
var set1 = ";,/?:@&=+$#"; // Caracteres reservadosvar set2 = "-_.!~*'()"; // Marcas não reservadasvar set3 = "ABC abc 123"; // Caracteres alfanuméricos + Espaçoconsole.log(encodeURI(set1)); // ;,/?:@&=+$#console.log(encodeURI(set2)); // -_.!~*'()console.log(encodeURI(set3)); // ABC%20abc%20123 (o espaço é codificado como %20)console.log(encodeURIComponent(set1)); // %3B%2C%2F%3F%3A%40%26%3D%2B%24%23console.log(encodeURIComponent(set2)); // -_.!~*'()console.log(encodeURIComponent(set3)); // ABC%20abc%20123 (o espaço é codificado como %20)

Note queencodeURI() por si só não pode formar requisiçõesGET ePOST, como paraXMLHttpRequest, porque"&","+", e"=" não são codificados, que são tratados como caracteres especiais em requisiçõesGET ePOST.encodeURIComponent(), entretanto, codifica esses caracteres.

Codificando um substituto solitário alto joga

UmURIError será jogado se uma tentativa de codificar um substituto que não é parte de um par alto-baixo, e.g.,

js
// par alto-baixo okconsole.log(encodeURI("\uD800\uDFFF"));// substituto alto solitário joga "URIError: malformed URI sequence"console.log(encodeURI("\uD800"));// substituto baixo solitário joga "URIError: malformed URI sequence"console.log(encodeURI("\uDFFF"));

Codificando para IPv6

Se você deseja seguir aRFC3986 mais recente para URLs, que faz colchetes ser reservado (paraIPv6) e então não será codificado quando formando algo que possa ser parte da URL (como o host), o seguinte código pode ajudar:

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

Especificações

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

Compatibilidade com navegadores

Veja também

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp