Convertisseur d'Entités HTML

Encodez et décodez les entités HTML (caractères spéciaux). Gratuit, rapide, et sécurisé - convertissez <, >, & et autres entités instantanément.

Exemples de conversion

Texte original : <div>Hello</div>
Encodé : &lt;div&gt;Hello&lt;/div&gt;
Caractères spéciaux : < > & " ' © ®
Entités : &lt; &gt; &amp; &quot; &#39; &copy; &reg;

Convertisseur d'Entités HTML : Encodez et décodez les caractères spéciaux instantanément

Les entités HTML sont des séquences de caractères qui permettent d'afficher des caractères spéciaux dans une page web sans qu'ils soient interprétés comme du code. Par exemple, `<` représente le symbole `<`, et `&` représente le symbole `&`. Ce convertisseur vous permet d'encoder (texte → entités) et de décoder (entités → texte) instantanément, directement dans votre navigateur.

Que vous développiez une application web, que vous affichiez du code dans un article de blog, ou que vous souhaitiez sécuriser vos formulaires contre les attaques XSS, cet outil vous fait gagner un temps précieux en automatisant l'échappement et le décodage des caractères spéciaux HTML.

Comment utiliser

  1. Sélectionnez le mode : "Encoder" (texte → entités) ou "Décoder" (entités → texte)
  2. Collez ou saisissez votre texte dans la zone d'entrée
  3. La conversion s'effectue automatiquement en temps réel
  4. Les caractères spéciaux (<, >, &, ", ') sont convertis en entités HTML
  5. Copiez le résultat avec le bouton de copie pour l'utiliser dans votre code

💡 Pourquoi ce convertisseur existe

Imaginez que vous développez un site permettant aux utilisateurs de partager des snippets de code. Un utilisateur poste ce contenu :

<script>alert('Hack!')</script>

Si vous affichez ce texte directement dans votre page sans l'échapper, le navigateur l'exécutera comme du JavaScript ! C'est une attaque XSS (Cross-Site Scripting).

En encodant ce texte en entités HTML, il devient :

&lt;script&gt;alert('Hack!')&lt;/script&gt;

Le navigateur affiche maintenant le code comme du texte inoffensif au lieu de l'exécuter. C'est la base de la sécurité web.

🔧 Cas d'utilisation concrets

📄 Afficher du code HTML dans une documentation

Lorsque vous rédigez un tutoriel ou une documentation technique, vous devez afficher du code HTML sans qu'il soit interprété.

<div class="container">Hello World</div>
&lt;div class=&quot;container&quot;&gt;Hello World&lt;/div&gt;

Utilisez cet outil pour convertir rapidement votre code en entités affichables.

🔒 Sécuriser les entrées utilisateur (prévention XSS)

Échappez systématiquement tout contenu provenant d'utilisateurs avant de l'afficher.

Nom d'utilisateur : <img src=x onerror="alert('XSS')">
# Après encodage (sécurisé) :
&lt;img src=x onerror=&quot;alert('XSS')&quot;&gt;

Le code malveillant devient du texte inoffensif.

📧 Génération de contenu pour API ou emails HTML

Lors de la génération de contenu HTML dynamique (emails, newsletters, rapports), vous devez encoder les données variables.

const userName = "Jean & Marie";
const htmlContent = `<p>Bonjour ${encodeHTML(userName)}</p>`;
// Résultat : <p>Bonjour Jean &amp; Marie</p>

Évite les problèmes d'affichage et de sécurité.

🐛 Déboguer des templates ou du markup

Comparez rapidement le markup généré avec sa version échappée pour identifier des problèmes de rendu.

<div title="Article "Featured"">...</div>
# Version encodée révèle le problème
&lt;div title=&quot;Article &quot;Featured&quot;&quot;&gt;

Les guillemets non échappés deviennent évidents.

✏️ Affichage de caractères spéciaux et symboles

Affichez correctement des symboles mathématiques, des devises ou des caractères Unicode.

© → &copy; (copyright)
€ → &euro; (euro)
← → &larr; (flèche gauche)
&nbsp; → espace insécable

Garantit un affichage cohérent sur tous les navigateurs.

📊 Migration de données depuis CSV ou bases de données

Lors de l'import de données depuis des sources externes, encodez les caractères spéciaux avant insertion dans du HTML.

Produit,Description
Widget,"Outil 5 en 1 <polyvalent>"
# Encodez <polyvalent> en &lt;polyvalent&gt;

Préparez vos données avant affichage web.

✨ Pourquoi utiliser cet outil ?

🔒

Sécurité renforcée

Prévenez les attaques XSS en échappant automatiquement tous les caractères dangereux dans les entrées utilisateur.

Conversion instantanée

Encodage et décodage en temps réel, directement dans votre navigateur. Pas d'attente, pas de délai.

🔄

Bidirectionnel

Encodez du texte en entités HTML, ou décodez des entités en texte normal. Les deux directions sont supportées.

🎯

Conformité standards

Utilise les API natives du navigateur pour garantir une conversion conforme aux standards HTML5.

🔐

Confidentialité totale

Traitement 100% local dans votre navigateur. Vos données ne sont jamais envoyées à un serveur.

💯

Gratuit et illimité

Aucune limite d'utilisation, aucune inscription requise. Convertissez autant de texte que nécessaire.

❓ Questions fréquentes (FAQ)

Quelle est la différence entre encoder et décoder ?

Encoder signifie convertir des caractères spéciaux en entités HTML :

  • `<` devient `&lt;`
  • `>` devient `&gt;`
  • `&` devient `&amp;`

Décoder est l'opération inverse : convertir les entités HTML en caractères normaux :

  • `&lt;` redevient `<`
  • `&quot;` redevient `"`

L'encodage sert à protéger votre code HTML, le décodage sert à lire le contenu original.

Pourquoi certains caractères doivent-ils être encodés ?

Certains caractères ont une signification spéciale en HTML :

  • `<` et `>` délimitent les balises HTML
  • `&` introduit les entités HTML
  • `"` et `'` délimitent les attributs

Si vous utilisez ces caractères dans du contenu textuel sans les encoder, le navigateur peut les interpréter comme du code, causant :

  • Des erreurs d'affichage
  • Des failles de sécurité (XSS)
  • Une structure HTML invalide

L'encodage transforme ces caractères en séquences sûres (`&lt;`, `&gt;`, etc.) qui s'affichent correctement.

Quelles sont les entités HTML les plus courantes ?
Caractère Entité Code numérique Utilisation
`<``&lt;``&#60;`Inférieur à / balise ouvrante
`>``&gt;``&#62;`Supérieur à / balise fermante
`&``&amp;``&#38;`Esperluette (et commercial)
`"``&quot;``&#34;`Guillemet double
`'``&apos;``&#39;`Apostrophe
` ``&nbsp;``&#160;`Espace insécable
`©``&copy;``&#169;`Copyright
`€``&euro;``&#8364;`Euro

Les entités nommées (`&lt;`) sont plus lisibles, les codes numériques (`&#60;`) sont plus universels.

Comment encoder des entités HTML en JavaScript ?

Plusieurs méthodes existent en JavaScript :

Méthode 1 : Manipulation du DOM (recommandée)

function encodeHTML(text) {
const div = document.createElement('div');
div.textContent = text;
return div.innerHTML;
}
encodeHTML('<script>alert("XSS")</script>');
// Résultat : &lt;script&gt;alert("XSS")&lt;/script&gt;

Méthode 2 : Expressions régulières

function encodeHTML(text) {
return text.replace(/[&<>"']/g, char => ({
'&': '&amp;', '<': '&lt;', '>': '&gt;',
'"': '&quot;', "'": '&#39;'
})[char]);
}

Méthode 3 : Utiliser une bibliothèque

(lodash, DOMPurify, etc.)

Cet outil protège-t-il vraiment contre les attaques XSS ?

Oui, si utilisé correctement. L'encodage des entités HTML est une des principales défenses contre les attaques XSS (Cross-Site Scripting).

Comment ça fonctionne :

  1. Un attaquant tente d'injecter du code : `<script>alert('XSS')</script>`
  2. Vous encodez le contenu : `&lt;script&gt;alert('XSS')&lt;/script&gt;`
  3. Le navigateur affiche le code comme du texte au lieu de l'exécuter

⚠️ Important :

  • Encodez toujours les entrées utilisateur avant affichage
  • Encodez au moment de l'affichage, pas au moment du stockage (pour éviter le double-encodage)
  • Combiné avec d'autres mesures (Content Security Policy, validation côté serveur, etc.) pour une sécurité complète

L'encodage HTML est nécessaire mais pas suffisant seul pour une sécurité totale.

Pourquoi mon texte encodé s'affiche en double après plusieurs conversions ?

C'est le problème du double-encodage. Il se produit quand vous encodez du texte déjà encodé :

Texte original : <div>
Premier encodage : &lt;div&gt;
Deuxième encodage : &amp;lt;div&amp;gt; ❌ PROBLÈME !

Le navigateur affiche alors littéralement `&lt;div&gt;` au lieu de `<div>`.

Solutions :

  1. Décodez d'abord si vous n'êtes pas sûr de l'état du texte
  2. Encodez une seule fois au moment de l'affichage
  3. Stockez toujours les données non encodées en base de données
  4. Utilisez des templates qui gèrent l'encodage automatiquement (React, Vue, etc.)

Règle d'or :

Encodez au dernier moment, juste avant l'affichage HTML.

📚 Bonnes pratiques

Encodez systématiquement les entrées utilisateur

Tout contenu provenant d'utilisateurs (commentaires, noms, descriptions) doit être encodé avant affichage pour prévenir les attaques XSS.

Stockez les données non encodées

En base de données, conservez le texte original. Encodez uniquement au moment de l'affichage pour éviter le double-encodage et permettre d'autres formats de sortie (JSON, PDF, etc.).

Utilisez des templates sécurisés

Les frameworks modernes (React, Vue, Angular) encodent automatiquement le contenu. Profitez-en et évitez `dangerouslySetInnerHTML` ou `v-html` sauf si absolument nécessaire.

⚠️

Attention aux attributs HTML

Dans les attributs HTML, encodez aussi les guillemets et apostrophes. Exemple : `<div title="Nom : &quot;Jean&quot;">` au lieu de `<div title="Nom : "Jean"">`.

🔒

Combinez avec d'autres mesures de sécurité

L'encodage HTML est une couche de défense. Ajoutez Content Security Policy (CSP), validation côté serveur, et sanitization pour une protection complète.

📖 Ressources et documentation

🥝Buy me a kiwi !