mercredi 21 décembre 2005

JavaScript alert et accents

Dans certains cas, un accent saisi dans le code source javascript ne sera pas affiché correctement, mais remplacé par un point d’interrogation.

UTF-8 ou non ?

Une solution serait de mettre toutes les chaînes en UTF-8, mais cela pose un problème pour une application web telle que SPIP où l’utilisateur peut choisir l’encodage des pages.

Il faut donc trouver une solution universelle, quel que soit l’encodage de la page de destination.

Encodage octal des caractères

J’ai trouvé la solution à ce problème sur le site Clagnut : Accents in alerts.

Il suffit de remplacer les caractères accentués par leur équivalent en octal précédé de \ (anti-slash)

Par exemple :

  • é : \351
  • è : \350
  • ê : \352
  • à : \340

La table complète d’équivalence caractère/octal

Une piste à explorer

Un commentaire de la page semble indiquer que :

var y=document.createElement('span');
y.innerHTML='Ménage à trois.';
alert(y.innerHTML);

Permet de faire la conversion automatiquement.

Personnellement, j’ai un doute. Et vous ?

Vos réactions

Participez à la vie du site !