--- title: encodeURI() slug: Web/JavaScript/Reference/Global_Objects/encodeURI translation_of: Web/JavaScript/Reference/Global_Objects/encodeURI ---
La funzione encodeURI() codifica un {{Glossary("URI")}} sostituendo alcuni specifici caratteri con una, due, tre o quattro sequenze di escape, che rappresentano il carattere codificato in {{Glossary("UTF-8")}} (le sequenze di quattro caratteri di escape verrano solo create per i caratteri composti da due caratteri "surrogati").
encodeURI(uri)
uriQuesta funzione assume che uri sia un {{Glossary("URI")}} completo, quindi non codifica i caratteri riservati che hanno un significato particolare nell'{{Glossary("URI")}}.
encodeURI sostituisce tutti i caratteri con la sequenza di escape UTF-8 appropriata, ecceto i seguenti:
| Tipo | Caratteri |
| Caratteri riservati | ; , / ? : @ & = + $ |
| Caratteri non codificati | lettere, cifre, - _ . ! ~ * ' ( ) |
| Score | # |
encodeURI non prepara una richiesta HTTP GET o POST, ad esempio per {{domxref("XMLHttpRequest")}}, perché "&", "+" e "=" non vengono codificati, ma sono trattati come caratteri speciali nelle richieste GET e POST. Se è necessario codificarli, usare la funzione {{jsxref("Global_Objects/encodeURIComponent", "encodeURIComponent()")}}.
Se si tenta di codificare un surrogato che non è parte di una coppia, verrà generato un {{jsxref("Global_Objects/URIError", "URIError")}}.
// Coppia surrogata: Ok
encodeURI("\uD800\uDFFF");
// Solo il primo carattere surrogato:
// Viene generato un "URIError: malformed URI sequence"
encodeURI("\uD800");
// Solo il secondo carattere surrogato:
// Viene generato un "URIError: malformed URI sequence"
encodeURI("\uDFFF");
Se uno desidera seguire il più recente standard per gli {{Glossary("URL")}} RFC3986, nel quale le parentesi quadre sono caratteri riservati (per gli indirizzi {{Glossary("IPv6")}}), può essere utile il seguente codice:
function fixedEncodeURI(str) {
return encodeURI(str).replace(/%5B/g, '[').replace(/%5D/g, ']');
}
| Specifica | Stato | Commenti |
|---|---|---|
| ECMAScript 3rd Edition. | Standard | Definizione iniziale. |
| {{SpecName('ES5.1', '#sec-15.1.3.3', 'encodeURI')}} | {{Spec2('ES5.1')}} | |
| {{SpecName('ES6', '#sec-encodeuri-uri', 'encodeURI')}} | {{Spec2('ES6')}} |
{{ CompatibilityTable() }}
| Funzionalità | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Supporto di base | {{ CompatVersionUnknown() }} | {{ CompatVersionUnknown() }} | {{ CompatVersionUnknown() }} | {{ CompatVersionUnknown() }} | {{ CompatVersionUnknown() }} |
| Funzionalità | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Supporto di base | {{ CompatVersionUnknown() }} | {{ CompatVersionUnknown() }} | {{ CompatVersionUnknown() }} | {{ CompatVersionUnknown() }} | {{ CompatVersionUnknown() }} | {{ CompatVersionUnknown() }} |