Encodage en pourcentage d'URL, encodage et décodage, avec prise en charge des caractères non-ASCII
L'encodage URL (aussi appelé encodage en pourcentage) est un mécanisme qui convertit les caractères spéciaux d'une URL en un % suivi de deux chiffres hexadécimaux. Selon la RFC 3986, une URL ne peut contenir qu'un sous-ensemble de caractères ASCII ; les autres caractères (tels que les caractères non-ASCII, les espaces et les symboles spéciaux) doivent être encodés.
En JavaScript, encodeURIComponent() encode les paramètres de requête d'URL — il encode chaque caractère sauf A-Z a-z 0-9 - _ . ! ~ * ' ( ). encodeURI() préserve les caractères structurels d'URL (tels que : / ? # & =).
Les scénarios courants d'encodage URL incluent : l'encodage des paramètres de requête AJAX, la gestion des caractères non-ASCII dans les chemins d'URL, et l'encodage des paramètres dans les signatures OAuth.
Entrée : Bonjour, le monde! → Sortie : Bonjour%2C%20le%20monde!
Entrée : hello world! → Sortie : hello%20world!
encodeURI n'encode pas les caractères structurels d'URL (:/?#&=+@$), il est donc adapté pour encoder une URL complète ; encodeURIComponent encode davantage de caractères et convient pour encoder les valeurs de paramètres de requête. Cet outil utilise encodeURIComponent.encodeURIComponent encode un espace en %20. Dans le format application/x-www-form-urlencoded (tel que la soumission de formulaire), les espaces sont encodés en +. Les deux sont valides.%XX, y compris les lettres et chiffres ASCII. Il est utile dans des cas particuliers, par exemple lorsque vous devez masquer entièrement le contenu de l'URL.