Entités HTML

Transforme <, >, & et les guillemets en entités HTML, ou ramène les entités en caractères.

Du texte qui tient dans du HTML

Si une chaîne contient < ou & et que vous la posez telle quelle dans du HTML, le navigateur y voit du balisage. L’encodage transforme ces caractères en entités. Le décodage ramène les entités en caractères. Ce n’est pas échapper du JSON, et ça n’enlève pas les balises. Ça réécrit des caractères.

Dans quel ordre

  1. Collez le texte ou la chaîne d’entités.
  2. Choisissez encoder ou décoder. L’encodage échappe toujours &, <, > et les deux sortes de guillemets.
  3. La case qui encode aussi hors ASCII écrit le chinois et les lettres accentuées en &#xHHHH;. Laissez-la décochée si la page est en UTF-8 et que seuls les caractères de balisage doivent bouger.
  4. Le décodage accepte le décimal &#20013;, l’hexadécimal &#x4E2D;, et une liste courte de noms : amp, lt, gt, quot, apos, nbsp, copy, reg, trade, mdash, ndash, hellip, laquo, raquo, bull, middot, euro, pound, yen, cent, sect, para, deg, plusmn, times, divide, micro. Un nom absent de la liste reste tel quel.

Ce qu’il ne faut pas attendre

L’encodage n’enveloppe pas le résultat dans une balise et n’ajoute pas de doctype. Un & déjà au début d’une entité, encodé une seconde fois, devient &amp;. Un décodage n’enlève qu’une couche. Beaucoup de noms HTML5 ne sont pas dans la liste et restent comme vous les avez collés. Une entité numérique qui n’est pas un point de code valide reste du texte, pour que l’erreur se voie.

À quoi ça sert

  • Poser une saisie utilisateur dans du HTML sans qu’elle devienne une balise.
  • Lire une vieille page ou un flux où le chinois était stocké en entités numériques.
  • Voir ce qu’un modèle va afficher avant de le rendre.

Questions

Pourquoi &euro; est resté du texte ?

En encodage, l’esperluette elle-même a été échappée : vous voyez la source de l’entité. Passez en décodage pour qu’un nom connu devienne le caractère.

Il me faut tous les noms HTML5.

La page couvre les noms qu’on croise dans un texte ordinaire, plus n’importe quelle entité numérique. Un nom inconnu est gardé pour qu’une faute de frappe ne disparaisse pas en silence.