OpenReplay Logo
12k
12k

Encodeur/décodeur d'entités HTML

Encodez et décodez les entités HTML en ligne — nommées, décimales ou hexadécimales — le traitement s'effectue localement, donc rien de ce que vous collez ne quitte jamais votre navigateur.

Sortie
Portée
Traité localement

À propos de cet outil

Les entités HTML sont des séquences d'échappement qui représentent des caractères qui seraient autrement interprétés comme du balisage ou qui ne peuvent pas être saisis de façon fiable — < pour le signe inférieur à, & pour l'esperluette,   pour un espace insécable, ainsi que des formes numériques comme   (décimale) ou   (hexadécimale) pour n'importe quel point de code Unicode. L'encodage convertit un caractère brut en son entité ; le décodage ramène une entité à son caractère. Cet outil encode au format nommé, décimal ou hexadécimal, et décode les trois formes, y compris l'ensemble nommé courant et les caractères astraux tels que les emoji.

Utilisez-le pour intégrer sans risque des chaînes générées par les utilisateurs, des exemples de code ou des citations dans du HTML sans casser la page ni ouvrir une faille XSS ; pour réparer un texte arrivé doublement encodé sous la forme &amp;amp; depuis un modèle mal configuré ; pour inspecter une référence numérique comme &#8212; et constater qu'il s'agit d'un tiret cadratin ; ou pour traduire des caractères accentués et des symboles en entités strictement ASCII pour les anciens pipelines d'e-mail et de flux. Par défaut, l'encodage n'échappe que & < > " ', ou bien tous les caractères non-ASCII lorsque vous activez la portée complète.

L'encodage des entités HTML sert à un affichage sûr, pas à la sécurité — encodez en entités les entrées non fiables au moment où elles sont rendues dans le HTML, et appuyez-vous sur un véritable assainisseur (sanitizer) ainsi que sur une Content Security Policy pour bloquer les attaques XSS.

Questions fréquentes

Quelle est la différence entre les entités HTML nommées, décimales et hexadécimales ?

Ce sont trois notations pour le même caractère. Les entités nommées comme © sont lisibles par l'humain mais n'existent que pour un ensemble fixe de caractères ; les références numériques décimale (&#169;) et hexadécimale (&#xA9;) fonctionnent pour n'importe quel point de code Unicode, de sorte que tout caractère peut toujours être exprimé numériquement.

Quels caractères doivent être encodés en entités HTML ?

Au minimum les cinq qui sont significatifs pour l'analyseur HTML : & (&amp;), < (&lt;), > (&gt;), " (&quot;) et ' (’). Encoder l'esperluette en premier est essentiel, sinon les entités existantes se retrouvent doublement encodées. Les autres caractères sont facultatifs et ne sont nécessaires que pour un transport strictement ASCII.

Pourquoi mon texte affiche-t-il &amp; au lieu de & ?

C'est un double encodage : l'esperluette a été échappée deux fois, généralement parce que du HTML déjà encodé a été repassé dans un encodeur. Décoder le texte en une passe ramène &amp;amp; à &amp;, et une seconde passe donne le & littéral — cet outil décode un seul niveau par exécution, ce qui vous permet de le défaire étape par étape.