diff options
| author | Masahiro FUJIMOTO <mfujimot@gmail.com> | 2021-09-04 00:46:12 +0900 |
|---|---|---|
| committer | Masahiro FUJIMOTO <mfujimot@gmail.com> | 2021-09-04 00:46:12 +0900 |
| commit | fe6f6abf2b7c497bf1f97f73a82dde7cf48eb79f (patch) | |
| tree | 51b7edfc370236684a203f4e69ae67bb7d24b549 /files/fr/web/javascript/reference/global_objects/encodeuri | |
| parent | 04ea4edc83cc12142ed151bbea2c65cffc8e76f6 (diff) | |
| parent | eeb07fe338cdc90092841d717919f46f9d9e3ff9 (diff) | |
| download | translated-content-fe6f6abf2b7c497bf1f97f73a82dde7cf48eb79f.tar.gz translated-content-fe6f6abf2b7c497bf1f97f73a82dde7cf48eb79f.tar.bz2 translated-content-fe6f6abf2b7c497bf1f97f73a82dde7cf48eb79f.zip | |
Merge branch 'main' into 20210818-Glossary/Type
Diffstat (limited to 'files/fr/web/javascript/reference/global_objects/encodeuri')
| -rw-r--r-- | files/fr/web/javascript/reference/global_objects/encodeuri/index.html | 121 | ||||
| -rw-r--r-- | files/fr/web/javascript/reference/global_objects/encodeuri/index.md | 94 |
2 files changed, 94 insertions, 121 deletions
diff --git a/files/fr/web/javascript/reference/global_objects/encodeuri/index.html b/files/fr/web/javascript/reference/global_objects/encodeuri/index.html deleted file mode 100644 index 1020c28623..0000000000 --- a/files/fr/web/javascript/reference/global_objects/encodeuri/index.html +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: encodeURI() -slug: Web/JavaScript/Reference/Global_Objects/encodeURI -tags: - - JavaScript - - Reference - - URI -translation_of: Web/JavaScript/Reference/Global_Objects/encodeURI -original_slug: Web/JavaScript/Reference/Objets_globaux/encodeURI ---- -<div>{{jsSidebar("Objects")}}</div> - -<p>La fonction <code><strong>encodeURI()</strong></code> encode un Uniform Resource Identifier (URI) en remplaçant chaque exemplaire de certains caractères par une, deux, trois ou quatre séquences d'échappement représentant le caractère encodé en UTF-8 (les quatre séquences d'échappement ne seront utilisées que si le caractère est composé de deux caractères « <em>surrogate</em> »).</p> - -<div>{{EmbedInteractiveExample("pages/js/globalprops-encodeuri.html")}}</div> - -<h2 id="Syntaxe">Syntaxe</h2> - -<pre class="syntaxbox">encodeURI(<var>URI</var>)</pre> - -<h3 id="Paramètres">Paramètres</h3> - -<dl> - <dt><code>URI</code></dt> - <dd>Un Uniform Resource Identifier complet.</dd> -</dl> - -<h3 id="Valeur_de_retour">Valeur de retour</h3> - -<p>Une nouvelle chaîne de caractères représentant un URI, encodé, à partir de la chaîne de caractères passée en argument.</p> - -<h2 id="Description">Description</h2> - -<p><code>encodeURI()</code> échappe tous les caractères sauf ceux-ci :</p> - -<pre>A-Z a-z 0-9 ; , / ? : @ & = + $ - _ . ! ~ * ' ( ) # -</pre> - -<p><code>encodeURI()</code> est différente de {{jsxref("encodeURIComponent")}}. Par exemple :</p> - -<pre class="brush: js">var set1 = ";,/?:@&=+$#"; // Caractères réservés -var set2 = "-_.!~*'()"; // Caractères non-réservés -var set3 = "ABC abc 123"; // Caractères alphanumériques et espace - -console.log(encodeURI(set1)); // ;,/?:@&=+$# -console.log(encodeURI(set2)); // -_.!~*'() -console.log(encodeURI(set3)); // ABC%20abc%20123 (l'espace est encodé en %20) - -console.log(encodeURIComponent(set1)); // %3B%2C%2F%3F%3A%40%26%3D%2B%24%23 -console.log(encodeURIComponent(set2)); // -_.!~*'() -console.log(encodeURIComponent(set3)); // ABC%20abc%20123 (l'espace est encodé en %20) - -</pre> - -<p>Une exception {{jsxref("URIError")}} sera levée si on tente d'encoder un caractère <em>surrogate</em> (demi-codet) qui ne fait pas partie d'une paire :</p> - -<pre class="brush: js">// On a une paire de codets <em>surrogate</em> -console.log(encodeURI('\uD800\uDFFF')); - -// Ici, seul le caractère "haut" -// ce qui déclenche une "URIError: malformed URI sequence" -console.log(encodeURI('\uD800')); - -// Ici, seul le caractère "bas" -// ce qui déclenche une "URIError: malformed URI sequence" -console.log(encodeURI('\uDFFF')); -</pre> - -<p><code>encodeURI()</code> ne permet pas de former des requêtes HTTP GET ou POST (par exemple avec {{domxref("XMLHTTPRequest")}}) car "&", "+" et "=" ne sont pas encodés et sont traités comme des caractères spéciaux (toutefois, la méthode. {{jsxref("encodeURIComponent")}} pourra être utilisée pour encoder ces caractères).</p> - -<p>Si on souhaite suivre la <a href="http://tools.ietf.org/html/rfc3986">RFC3986</a> qui concerne les URL et qui rend les crochets réservés (pour IPv6) (il ne faut donc plus encoder ces caractères lorsqu'ils font partie d'une URL (notamment pour la partie représentant l'hôte), on pourra utiliser le fragment de code suivant :</p> - -<pre class="brush: js">function fixedEncodeURI(str) { - return encodeURI(str).replace(/%5B/g, '[').replace(/%5D/g, ']'); -}</pre> - -<h2 id="Spécifications">Spécifications</h2> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">Spécification</th> - <th scope="col">État</th> - <th scope="col">Commentaires</th> - </tr> - </thead> - <tbody> - <tr> - <td>{{SpecName('ESDraft', '#sec-encodeuri-uri', 'encodeURI')}}</td> - <td>{{Spec2('ESDraft')}}</td> - <td></td> - </tr> - <tr> - <td>{{SpecName('ES6', '#sec-encodeuri-uri', 'encodeURI')}}</td> - <td>{{Spec2('ES6')}}</td> - <td></td> - </tr> - <tr> - <td>{{SpecName('ES5.1', '#sec-15.1.3.3', 'encodeURI')}}</td> - <td>{{Spec2('ES5.1')}}</td> - <td></td> - </tr> - <tr> - <td>{{SpecName('ES3')}}</td> - <td>{{Spec2('ES3')}}</td> - <td>Définition initiale.</td> - </tr> - </tbody> -</table> - -<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2> - -<p>{{Compat("javascript.builtins.encodeURI")}}</p> - -<h2 id="Voir_aussi">Voir aussi</h2> - -<ul> - <li>{{jsxref("decodeURI", "decodeURI()")}}</li> - <li>{{jsxref("encodeURIComponent", "encodeURIComponent()")}}</li> - <li>{{jsxref("decodeURIComponent", "decodeURIComponent()")}}</li> -</ul> diff --git a/files/fr/web/javascript/reference/global_objects/encodeuri/index.md b/files/fr/web/javascript/reference/global_objects/encodeuri/index.md new file mode 100644 index 0000000000..02eade980e --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/encodeuri/index.md @@ -0,0 +1,94 @@ +--- +title: encodeURI() +slug: Web/JavaScript/Reference/Global_Objects/encodeURI +tags: + - JavaScript + - Reference + - URI +translation_of: Web/JavaScript/Reference/Global_Objects/encodeURI +original_slug: Web/JavaScript/Reference/Objets_globaux/encodeURI +--- +{{jsSidebar("Objects")}} + +La fonction **`encodeURI()`** encode un Uniform Resource Identifier (URI) en remplaçant chaque exemplaire de certains caractères par une, deux, trois ou quatre séquences d'échappement représentant le caractère encodé en UTF-8 (les quatre séquences d'échappement ne seront utilisées que si le caractère est composé de deux caractères « _surrogate_ »). + +{{EmbedInteractiveExample("pages/js/globalprops-encodeuri.html")}} + +## Syntaxe + + encodeURI(URI) + +### Paramètres + +- `URI` + - : Un Uniform Resource Identifier complet. + +### Valeur de retour + +Une nouvelle chaîne de caractères représentant un URI, encodé, à partir de la chaîne de caractères passée en argument. + +## Description + +`encodeURI()` échappe tous les caractères sauf ceux-ci : + + A-Z a-z 0-9 ; , / ? : @ & = + $ - _ . ! ~ * ' ( ) # + +`encodeURI()` est différente de {{jsxref("encodeURIComponent")}}. Par exemple : + +```js +var set1 = ";,/?:@&=+$#"; // Caractères réservés +var set2 = "-_.!~*'()"; // Caractères non-réservés +var set3 = "ABC abc 123"; // Caractères alphanumériques et espace + +console.log(encodeURI(set1)); // ;,/?:@&=+$# +console.log(encodeURI(set2)); // -_.!~*'() +console.log(encodeURI(set3)); // ABC%20abc%20123 (l'espace est encodé en %20) + +console.log(encodeURIComponent(set1)); // %3B%2C%2F%3F%3A%40%26%3D%2B%24%23 +console.log(encodeURIComponent(set2)); // -_.!~*'() +console.log(encodeURIComponent(set3)); // ABC%20abc%20123 (l'espace est encodé en %20) +``` + +Une exception {{jsxref("URIError")}} sera levée si on tente d'encoder un caractère *surrogate* (demi-codet) qui ne fait pas partie d'une paire : + +```js +// On a une paire de codets surrogate +console.log(encodeURI('\uD800\uDFFF')); + +// Ici, seul le caractère "haut" +// ce qui déclenche une "URIError: malformed URI sequence" +console.log(encodeURI('\uD800')); + +// Ici, seul le caractère "bas" +// ce qui déclenche une "URIError: malformed URI sequence" +console.log(encodeURI('\uDFFF')); +``` + +`encodeURI()` ne permet pas de former des requêtes HTTP GET ou POST (par exemple avec {{domxref("XMLHTTPRequest")}}) car "&", "+" et "=" ne sont pas encodés et sont traités comme des caractères spéciaux (toutefois, la méthode. {{jsxref("encodeURIComponent")}} pourra être utilisée pour encoder ces caractères). + +Si on souhaite suivre la [RFC3986](http://tools.ietf.org/html/rfc3986) qui concerne les URL et qui rend les crochets réservés (pour IPv6) (il ne faut donc plus encoder ces caractères lorsqu'ils font partie d'une URL (notamment pour la partie représentant l'hôte), on pourra utiliser le fragment de code suivant : + +```js +function fixedEncodeURI(str) { + return encodeURI(str).replace(/%5B/g, '[').replace(/%5D/g, ']'); +} +``` + +## Spécifications + +| Spécification | État | Commentaires | +| ---------------------------------------------------------------------------- | ---------------------------- | -------------------- | +| {{SpecName('ESDraft', '#sec-encodeuri-uri', 'encodeURI')}} | {{Spec2('ESDraft')}} | | +| {{SpecName('ES6', '#sec-encodeuri-uri', 'encodeURI')}} | {{Spec2('ES6')}} | | +| {{SpecName('ES5.1', '#sec-15.1.3.3', 'encodeURI')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES3')}} | {{Spec2('ES3')}} | Définition initiale. | + +## Compatibilité des navigateurs + +{{Compat("javascript.builtins.encodeURI")}} + +## Voir aussi + +- {{jsxref("decodeURI", "decodeURI()")}} +- {{jsxref("encodeURIComponent", "encodeURIComponent()")}} +- {{jsxref("decodeURIComponent", "decodeURIComponent()")}} |
