En IteropScript (se basant sur le JavaScript), certains caractères spéciaux sont interprétés, c’est-à-dire qu’ils ont un sens au sein du code dans lequel ils sont situés. C’est aussi le cas s’ils sont situés dans une chaîne de caractères.
Exemple :
var myVarJs = "Voici un " dans ma chaîne";
Ce morceau de code provoquera une erreur lors de l’exécution, car le « au milieu de la chaîne sera interprété et signifie la fin de la chaîne de caractère. Le reste sera alors considéré comme du code mais ne signifie rien, ce qui provoquera, in fine, une erreur.
Les différents caractères spéciaux interprétés dans une chaîne de caractère
L’antislash \
L’antislash a deux utilités : il permet d’échapper l’interprétation du caractère qui le suit, et également combiné avec une lettre spécifique, agir comme un caractère spécial :
L’utilisation de celui-ci permet d’échapper un caractère qui aurait un rôle dans la chaine de caractère. En effet :
- \\ : Échappe un antislash
- \ » : Échappe un guillemet
- \’ : Échappe une apostrophe
Prenons un exemple avec le caractère » :
var myVar = "Voici un \" dans ma chaîne";
MyVar aura la valeur :
Voici un " dans ma chaîne
les caractères spéciaux sont :
- \n : Nouvelle ligne.
- \r : Retour a la ligne.
- \v : Tabulation verticale.
- \t : Tabulation.
- \b : Tabulation arrière.
- \f : Flux de formulaire.
Les dangers liés aux caractères spéciaux
Afin d’échanger les données, le système va avoir recours au format JSON (JavaScript Object Notation – Notation Objet issue de JavaScript). Le JSON est un format texte indépendant basé sur un sous-ensemble du langage de programmation JavaScript.
Même si le JSON est basé sur du JavaScript, ils sont différents sur un certain nombre de points, mais celui qui nous intéresse ici est le suivant : la gestion des caractères spéciaux.
Le JSON prend en charge la syntaxe d’échappement de la barre oblique inversée pour les caractères spéciaux mais tous les caractères ne sont pas reconnus par le format JSON.
Seuls ces caractères spéciaux sont pris en compte :
- \n : Nouvelle ligne.
- \r : Retour a la ligne.
- \t : Tabulation.
La liste de caractères acceptés par le JSON est bien plus courte que celle du JavaScript.
Les fonctions de traduction du JavaScript au JSON s’occupent d’interpréter les chaines de caractère en format JSON mais ces fonctions sont très strictes et généreront une exception lorsqu’ils rencontreront un caractère non prévu par la spécification.
Il y a donc des risques d’erreurs d’interprétation conséquents en utilisant les caractères spéciaux dans vos différents scripts.