Encoder et décoder du HTML
Cet outil encode du texte en références de caractères HTML et les décode, entièrement dans votre navigateur. Les entités nommées comme & et < couvrent les échappatoires courantes ; les formes numériques comme A et A permettent d’atteindre n’importe quel caractère Unicode. Le mode décodage strict signale les entités inconnues au lieu de les laisser passer.
Encoder et décoder du HTML en clair
HTML attribue deux caractères à des tâches structurelles : & introduit une référence de caractère, < introduit une balise. Lorsque ces caractères apparaissent comme texte, ils nécessitent un échappement, et le mécanisme est la référence de caractère : une écriture courte et non ambigüe comme & que chaque analyseur décode pour retrouver le caractère original.
La liste standard des références nommées est finie et close — plus de 2 200 écritures — et cinq en assurent la majeure partie du travail : &, <, >, " et '. Pour tout ce que la liste ne couvre pas, une référence numérique écrit directement le point de code : A et A sont tous les deux la lettre A, et la même astuce couvre chaque caractère défini par Unicode.
Le panneau ci-dessous fait les deux sens : un interrupteur encode le texte en entités, l’autre les décode. Les sélecteurs choisissent une sortie nommée ou numérique, et un décodage strict ou indulgent. Comme tout sur ce site, il s’exécute entièrement dans cet onglet.
La construction de liens qui transportent des données utilisateur est le point de rencontre des deux grammaires d’échappement, et le Encodeur et décodeur d’URL gère la partie encodage en pourcentage.
L’échappement d’entités est un membre d’une famille d’encodages de caractères et d’octets ; le site hub des outils d’encodage rassemble le reste, de Base64 au binaire.
Les cinq entités nommées qui font presque tout le travail
Les caractères qui doivent être échappés dépendent du contexte. Dans du texte, deux sont obligatoires : un & littéral doit s’écrire &, car un esperluette suivie de lettres et d’un point-virgule est le début d’une référence, et un < littéral doit s’écrire <, car il ouvre sinon une balise. Les trois autres sont contextuels ; échapper ces cinq sans condition ne coûte rien.
| Entité | Écrit | Requise lorsque |
|---|---|---|
| & | & | Toujours dans du texte — l’échappement que la spécification impose |
| < | < | Dans du texte, avant qu’il n’ouvre une balise |
| > | > | Rarement requise dans du texte ; échappée par habitude |
| " | " | À l’intérieur de valeurs d’attributs entre guillemets doubles |
| ' | ' | À l’intérieur de valeurs d’attributs entre guillemets simples |
Nommé versus numérique : deux écritures d’un même caractère
Une référence numérique écrit le point de code lui-même : A est la forme décimale pour A, A la forme hexadécimale pour la même lettre — point-virgule requis en HTML5, x et chiffres hexadécimaux insensibles à la casse. Comme le nomme directement le point de code, la forme numérique couvre chaque caractère défini par Unicode, y compris les emoji.
Le compromis est la lisibilité de la source : é indique à un humain ce qui sera rendu, é non. Le mode nommé ici suit la politique habituelle : les caractères courants ont des noms ( , —, é comme é), la longue traîne numérique. En aval, la distinction disparaît — les deux écritures se décodent en le même caractère.
Mode décodage, et ce que le mode strict signale
L’interrupteur de sens inverse le pipeline : collez du balisage échappé, obtenez des caractères bruts. Les trois écritures se décodent — nommée, décimale et hexadécimale — et la recherche nommée ignore la casse, car le balisage réel n’est pas cohérent.
Les entités inconnues reçoivent un traitement honnête. Le convertisseur ne reconnaît pas &npsp; — la faute classique de — et par défaut le laisse intact, car un texte peut légitimement contenir des esperluettes. Le mode strict existe pour le balisage qui prétend être entièrement échappé : là, une entité inconnue est un bug, et le décodage strict signale chacune au-dessus de la sortie au lieu de laisser une faute passer.
L’échappement est la frontière de sécurité, pas une décoration
La raison pour laquelle cette conversion dépasse la typographie est l’injection. Un texte fourni par un utilisateur qui s’affiche dans une page non échappé n’est pas affiché comme texte : un <script> littéral à l’intérieur s’exécute, et une citation non échappée dans une valeur d’attribut sort de l’attribut. L’échappement transforme ces octets en caractères inerts — <script> s’affiche comme du texte lisible et ne fait rien d’autre.
C’est un travail différent de l’échappement d’URL : l’encodage pourcent a son propre ensemble de caractères réservés et sa grammaire, et les deux ne sont pas interchangeables — c’est pourquoi ils ont des outils séparés.
Questions fréquentes
L’encodeur envoie-t-il mon texte à un serveur ?
Non. Les deux sens sont des transformations de chaînes exécutées par le JavaScript chargé avec la page ; rien n’est transmis. La politique de sécurité de contenu du site, Content-Security-Policy, définit connect-src 'self', donc le navigateur lui-même refuserait une requête sortante. Vérifiez comme vous voulez : le panneau Réseau de DevTools reste silencieux, et l’outil fonctionne hors ligne.
Quels caractères doivent réellement être échappés en HTML ?
Dans le contenu texte, deux sont obligatoires : & comme & et < comme <. Un > nu dans du texte est toléré mais échappé par habitude, et les guillemets n’ont d’importance qu’à l’intérieur de valeurs d’attributs délimitées par le même guillemet. Cet outil échappe les cinq sans condition, donc sa sortie est sûre partout.
Quelle est la différence entre les entités nommées et numériques ?
Une entité nommée est un étiquette de la liste fermée de la norme — &, ©, é. Une référence numérique écrit directement le point de code, décimal comme A ou hexadécimal comme A. Les deux se décodent en le même caractère ; la forme numérique couvre chaque point de code Unicode, la forme nommée se lit mieux. La différence n’est que pour les lecteurs de la source.
Que le mode décodage strict détecte-t-il ?
Les noms inconnus et les nombres impossibles. Le décodage strict signale des entités comme &npsp; — la faute classique de — et les références numériques dont la valeur n’est pas un code de caractère valide. Le mode indulgent laisse les entités inconnues intactes.
Les entités affectent-elles le référencement ou les lecteurs d’écran ?
Non. Les entités sont décodées pendant l’analyse HTML, avant que l’index de recherche ou un lecteur d’écran ne les voient. Le DOM contient le caractère littéral dans les deux cas, donc é et é sont classés identiquement et annoncés identiquement. Choisissez une écriture pour les humains lisant la source, pas pour les machines consommant la page.
Pourquoi mon apostrophe devient-il ' ?
Parce qu’HTML5 définit ' — il était réservé à XML pendant des années, d’où son ancienne réputation de risqué — et un apostrophe à l’intérieur d’un attribut entre guillemets simples est exactement l’endroit où son échappement est requis. Pour les consommateurs pré-HTML5, la forme numérique ' est celle que chaque analyseur a toujours acceptée.
Quels outils liés devriez-vous utiliser ensuite ?
- Encoder et décoder une URLEncode et décode en distinguant + et %20Ouvrir
- Encoder et décoder en Base64Base64 standard et URL-safe, téléchargement binaire inclusOuvrir
- Outils d’encodageBase64, encodage d’URL, hachage et inspection de jetons.Ouvrir
- Outils texteComparez, convertissez et remaniez du texte brut et du code.Ouvrir
- Convertir la casseRenomme des identifiants en gérant les siglesOuvrir
- Comment fonctionne Base64Guide en langage clairOuvrir