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
<div>Hello</div> <div>Hello</div> < > & " ' © ® < > & " ' © ® 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
- Sélectionnez le mode : "Encoder" (texte → entités) ou "Décoder" (entités → texte)
- Collez ou saisissez votre texte dans la zone d'entrée
- La conversion s'effectue automatiquement en temps réel
- Les caractères spéciaux (<, >, &, ", ') sont convertis en entités HTML
- 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 :
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 :
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é.
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.
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.
É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.
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.
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.
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 `<`
- `>` devient `>`
- `&` devient `&`
Décoder est l'opération inverse : convertir les entités HTML en caractères normaux :
- `<` redevient `<`
- `"` 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 (`<`, `>`, etc.) qui s'affichent correctement.
Quelles sont les entités HTML les plus courantes ?
| Caractère | Entité | Code numérique | Utilisation |
|---|---|---|---|
| `<` | `<` | `<` | Inférieur à / balise ouvrante |
| `>` | `>` | `>` | Supérieur à / balise fermante |
| `&` | `&` | `&` | Esperluette (et commercial) |
| `"` | `"` | `"` | Guillemet double |
| `'` | `'` | `'` | Apostrophe |
| ` ` | ` ` | ` ` | Espace insécable |
| `©` | `©` | `©` | Copyright |
| `€` | `€` | `€` | Euro |
Les entités nommées (`<`) sont plus lisibles, les codes numériques (`<`) 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)
Méthode 2 : Expressions régulières
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 :
- Un attaquant tente d'injecter du code : `<script>alert('XSS')</script>`
- Vous encodez le contenu : `<script>alert('XSS')</script>`
- 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é :
Le navigateur affiche alors littéralement `<div>` au lieu de `<div>`.
Solutions :
- Décodez d'abord si vous n'êtes pas sûr de l'état du texte
- Encodez une seule fois au moment de l'affichage
- Stockez toujours les données non encodées en base de données
- 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 : "Jean"">` 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.