Dans tous les langages de programmation, un problème récurrent existe : il s’agit de la gestion des caractères spéciaux.
En javascript, nous disposons de 2 fonctions pour encoder et décoder les caractères spéciaux, il s’agit des fonctions escape() et unescape().
L’encodage réalisé à l’aide de la fonction escape() va encoder tous les caractères spéciaux sous la forme %N où N est un nombre sous forme hexadécimale.
Fonction escape() et unescape()
var mySpecialString = 'Voici des caractères spéciaux : # \' + &'; document.write('mySpecialString non encodée : ' + mySpecialString); // Affiche "mySpecialString non encodée : Voici des caractères spéciaux : # ' + &" // Les caractères ne sont pas encodés document.write(escape(mySpecialString)); // Affiche "Voici%20des%20caract%E8res%20sp%E9ciaux%20%3A%20%23%20%27%20+%20%26" // Ici les caractères sont encodés document.write(unescape(escape(mySpecialString))); // Affiche "Voici des caractères spéciaux : # ' + &" // Ici les caractères sont décodés
La fonction escape() peut être utile pour lire les cookies ou encore pour passer des paramètres dans l’url. A noter que si l’on applique la fonction escape() pour passer des paramètres dans une url et que l’on récupère ces paramètres en PHP avec $_GET, ces paramètres seront automatiquement décodés.