Encodeur / décodeur d’entités HTML — échapper et déséchapper du HTML
Échappez du texte pour le HTML avec des entités nommées ou numériques, décodez les références de type & en caractères et cherchez dans un tableau de référence des entités.
<p class="note">Fish & chips — £4.50 at Café "Ōshima" 🐟</p>
Référence des entités HTML
| Car. | Nommée | Décimale | Hexa | |
|---|---|---|---|---|
| " | " | " | " | |
| & | & | & | & | |
| ' | ' | ' | ' | |
| < | < | < | < | |
| > | > | > | > | |
| · | |   |   | |
| ¡ | ¡ | ¡ | ¡ | |
| ¢ | ¢ | ¢ | ¢ | |
| £ | £ | £ | £ | |
| ¤ | ¤ | ¤ | ¤ | |
| ¥ | ¥ | ¥ | ¥ | |
| ¦ | ¦ | ¦ | ¦ | |
| § | § | § | § | |
| ¨ | ¨ | ¨ | ¨ | |
| © | © | © | © | |
| ª | ª | ª | ª | |
| « | « | « | « | |
| ¬ | ¬ | ¬ | ¬ | |
| · | ­ | ­ | ­ | |
| ® | ® | ® | ® | |
| ¯ | ¯ | ¯ | ¯ | |
| ° | ° | ° | ° | |
| ± | ± | ± | ± | |
| ² | ² | ² | ² | |
| ³ | ³ | ³ | ³ | |
| ´ | ´ | ´ | ´ | |
| µ | µ | µ | µ | |
| ¶ | ¶ | ¶ | ¶ | |
| · | · | · | · | |
| ¸ | ¸ | ¸ | ¸ | |
| ¹ | ¹ | ¹ | ¹ | |
| º | º | º | º | |
| » | » | » | » | |
| ¼ | ¼ | ¼ | ¼ | |
| ½ | ½ | ½ | ½ | |
| ¾ | ¾ | ¾ | ¾ | |
| ¿ | ¿ | ¿ | ¿ | |
| À | À | À | À | |
| Á | Á | Á | Á | |
| Â | Â | Â | Â | |
| Ã | Ã | Ã | Ã | |
| Ä | Ä | Ä | Ä | |
| Å | Å | Å | Å | |
| Æ | Æ | Æ | Æ | |
| Ç | Ç | Ç | Ç | |
| È | È | È | È | |
| É | É | É | É | |
| Ê | Ê | Ê | Ê | |
| Ë | Ë | Ë | Ë | |
| Ì | Ì | Ì | Ì | |
| Í | Í | Í | Í | |
| Î | Î | Î | Î | |
| Ï | Ï | Ï | Ï | |
| Ð | Ð | Ð | Ð | |
| Ñ | Ñ | Ñ | Ñ | |
| Ò | Ò | Ò | Ò | |
| Ó | Ó | Ó | Ó | |
| Ô | Ô | Ô | Ô | |
| Õ | Õ | Õ | Õ | |
| Ö | Ö | Ö | Ö | |
| × | × | × | × | |
| Ø | Ø | Ø | Ø | |
| Ù | Ù | Ù | Ù | |
| Ú | Ú | Ú | Ú | |
| Û | Û | Û | Û | |
| Ü | Ü | Ü | Ü | |
| Ý | Ý | Ý | Ý | |
| Þ | Þ | Þ | Þ | |
| ß | ß | ß | ß | |
| à | à | à | à | |
| á | á | á | á | |
| â | â | â | â | |
| ã | ã | ã | ã | |
| ä | ä | ä | ä | |
| å | å | å | å | |
| æ | æ | æ | æ | |
| ç | ç | ç | ç | |
| è | è | è | è | |
| é | é | é | é | |
| ê | ê | ê | ê | |
| ë | ë | ë | ë | |
| ì | ì | ì | ì | |
| í | í | í | í | |
| î | î | î | î | |
| ï | ï | ï | ï | |
| ð | ð | ð | ð | |
| ñ | ñ | ñ | ñ | |
| ò | ò | ò | ò | |
| ó | ó | ó | ó | |
| ô | ô | ô | ô | |
| õ | õ | õ | õ | |
| ö | ö | ö | ö | |
| ÷ | ÷ | ÷ | ÷ | |
| ø | ø | ø | ø | |
| ù | ù | ù | ù | |
| ú | ú | ú | ú | |
| û | û | û | û | |
| ü | ü | ü | ü | |
| ý | ý | ý | ý | |
| þ | þ | þ | þ | |
| ÿ | ÿ | ÿ | ÿ | |
| Α | Α | Α | Α | |
| Β | Β | Β | Β | |
| Γ | Γ | Γ | Γ | |
| Δ | Δ | Δ | Δ | |
| Ε | Ε | Ε | Ε | |
| Ζ | Ζ | Ζ | Ζ | |
| Η | Η | Η | Η | |
| Θ | Θ | Θ | Θ | |
| Ι | Ι | Ι | Ι | |
| Κ | Κ | Κ | Κ | |
| Λ | Λ | Λ | Λ | |
| Μ | Μ | Μ | Μ | |
| Ν | Ν | Ν | Ν | |
| Ξ | Ξ | Ξ | Ξ | |
| Ο | Ο | Ο | Ο | |
| Π | Π | Π | Π | |
| Ρ | Ρ | Ρ | Ρ | |
| Σ | Σ | Σ | Σ | |
| Τ | Τ | Τ | Τ | |
| Υ | Υ | Υ | Υ | |
| Φ | Φ | Φ | Φ | |
| Χ | Χ | Χ | Χ | |
| Ψ | Ψ | Ψ | Ψ | |
| Ω | Ω | Ω | Ω | |
| α | α | α | α | |
| β | β | β | β | |
| γ | γ | γ | γ | |
| δ | δ | δ | δ | |
| ε | ε | ε | ε | |
| ζ | ζ | ζ | ζ | |
| η | η | η | η | |
| θ | θ | θ | θ | |
| ι | ι | ι | ι | |
| κ | κ | κ | κ | |
| λ | λ | λ | λ | |
| μ | μ | μ | μ | |
| ν | ν | ν | ν | |
| ξ | ξ | ξ | ξ | |
| ο | ο | ο | ο | |
| π | π | π | π | |
| ρ | ρ | ρ | ρ | |
| ς | ς | ς | ς | |
| σ | σ | σ | σ | |
| τ | τ | τ | τ | |
| υ | υ | υ | υ | |
| φ | φ | φ | φ | |
| χ | χ | χ | χ | |
| ψ | ψ | ψ | ψ | |
| ω | ω | ω | ω | |
| Œ | Œ | Œ | Œ | |
| œ | œ | œ | œ | |
| Š | Š | Š | Š | |
| š | š | š | š | |
| Ÿ | Ÿ | Ÿ | Ÿ | |
| ƒ | ƒ | ƒ | ƒ | |
| ˆ | ˆ | ˆ | ˆ | |
| ˜ | ˜ | ˜ | ˜ | |
| ϑ | ϑ | ϑ | ϑ | |
| ϒ | ϒ | ϒ | ϒ | |
| ϖ | ϖ | ϖ | ϖ | |
| · |   |   |   | |
| · |   |   |   | |
| · |   |   |   | |
| · | ‌ | ‌ | ‌ | |
| · | ‍ | ‍ | ‍ | |
| · | ‎ | ‎ | ‎ | |
| · | ‏ | ‏ | ‏ | |
| – | – | – | – | |
| — | — | — | — | |
| ‘ | ‘ | ‘ | ‘ | |
| ’ | ’ | ’ | ’ | |
| ‚ | ‚ | ‚ | ‚ | |
| “ | “ | “ | “ | |
| ” | ” | ” | ” | |
| „ | „ | „ | „ | |
| † | † | † | † | |
| ‡ | ‡ | ‡ | ‡ | |
| • | • | • | • | |
| … | … | … | … | |
| ‰ | ‰ | ‰ | ‰ | |
| ′ | ′ | ′ | ′ | |
| ″ | ″ | ″ | ″ | |
| ‹ | ‹ | ‹ | ‹ | |
| › | › | › | › | |
| ‾ | ‾ | ‾ | ‾ | |
| ⁄ | ⁄ | ⁄ | ⁄ | |
| € | € | € | € | |
| ℑ | ℑ | ℑ | ℑ | |
| ℘ | ℘ | ℘ | ℘ | |
| ℜ | ℜ | ℜ | ℜ | |
| ™ | ™ | ™ | ™ | |
| ℵ | ℵ | ℵ | ℵ | |
| ← | ← | ← | ← | |
| ↑ | ↑ | ↑ | ↑ | |
| → | → | → | → | |
| ↓ | ↓ | ↓ | ↓ | |
| ↔ | ↔ | ↔ | ↔ | |
| ↵ | ↵ | ↵ | ↵ | |
| ⇐ | ⇐ | ⇐ | ⇐ | |
| ⇑ | ⇑ | ⇑ | ⇑ | |
| ⇒ | ⇒ | ⇒ | ⇒ | |
| ⇓ | ⇓ | ⇓ | ⇓ | |
| ⇔ | ⇔ | ⇔ | ⇔ | |
| ∀ | ∀ | ∀ | ∀ | |
| ∂ | ∂ | ∂ | ∂ | |
| ∃ | ∃ | ∃ | ∃ | |
| ∅ | ∅ | ∅ | ∅ | |
| ∇ | ∇ | ∇ | ∇ | |
| ∈ | ∈ | ∈ | ∈ | |
| ∉ | ∉ | ∉ | ∉ | |
| ∋ | ∋ | ∋ | ∋ | |
| ∏ | ∏ | ∏ | ∏ | |
| ∑ | ∑ | ∑ | ∑ | |
| − | − | − | − | |
| ∗ | ∗ | ∗ | ∗ | |
| √ | √ | √ | √ | |
| ∝ | ∝ | ∝ | ∝ | |
| ∞ | ∞ | ∞ | ∞ | |
| ∠ | ∠ | ∠ | ∠ | |
| ∧ | ∧ | ∧ | ∧ | |
| ∨ | ∨ | ∨ | ∨ | |
| ∩ | ∩ | ∩ | ∩ | |
| ∪ | ∪ | ∪ | ∪ | |
| ∫ | ∫ | ∫ | ∫ | |
| ∴ | ∴ | ∴ | ∴ | |
| ∼ | ∼ | ∼ | ∼ | |
| ≅ | ≅ | ≅ | ≅ | |
| ≈ | ≈ | ≈ | ≈ | |
| ≠ | ≠ | ≠ | ≠ | |
| ≡ | ≡ | ≡ | ≡ | |
| ≤ | ≤ | ≤ | ≤ | |
| ≥ | ≥ | ≥ | ≥ | |
| ⊂ | ⊂ | ⊂ | ⊂ | |
| ⊃ | ⊃ | ⊃ | ⊃ | |
| ⊄ | ⊄ | ⊄ | ⊄ | |
| ⊆ | ⊆ | ⊆ | ⊆ | |
| ⊇ | ⊇ | ⊇ | ⊇ | |
| ⊕ | ⊕ | ⊕ | ⊕ | |
| ⊗ | ⊗ | ⊗ | ⊗ | |
| ⊥ | ⊥ | ⊥ | ⊥ | |
| ⋅ | ⋅ | ⋅ | ⋅ | |
| ⌈ | ⌈ | ⌈ | ⌈ | |
| ⌉ | ⌉ | ⌉ | ⌉ | |
| ⌊ | ⌊ | ⌊ | ⌊ | |
| ⌋ | ⌋ | ⌋ | ⌋ | |
| ⟨ | ⟨ | ⟨ | ⟨ | |
| ⟩ | ⟩ | ⟩ | ⟩ | |
| ◊ | ◊ | ◊ | ◊ | |
| ♠ | ♠ | ♠ | ♠ | |
| ♣ | ♣ | ♣ | ♣ | |
| ♥ | ♥ | ♥ | ♥ | |
| ♦ | ♦ | ♦ | ♦ |
253 entités sur 253. Les caractères invisibles (espaces, liants, trait d’union conditionnel) s’affichent sous la forme ·.
Fonctionne entièrement dans votre navigateur. Rien de ce que vous saisissez n’est envoyé ni stocké. Parcourir tous les outils gratuits.
Un problème, ou quelque chose à améliorer ? Nous lisons chaque message et corrigeons vite.
Cet encodeur et décodeur d’entités HTML convertit des caractères vers et depuis des références de caractères HTML. L’encodage transforme les cinq caractères qui ont un sens particulier dans le balisage (< > & " ') en < > & " et ', pour qu’un texte puisse être affiché sur une page ou placé dans un attribut sans être interprété comme du HTML. Vous pouvez aussi encoder tous les caractères non ASCII, ce qui aide quand un modèle, un e-mail ou un ancien système abîme l’UTF-8.
Le décodage gère les entités nommées comme é et …, les références décimales comme é et hexadécimales comme é, selon les règles du parseur HTML5 lui-même, y compris ses particularités pour les points de code invalides. Les noms absents du tableau intégré de 253 entrées sont recherchés par le parseur HTML de votre navigateur : les plus de 2 000 noms de HTML5 sont donc tous décodés. Les noms inconnus sont laissés tels quels et listés, au lieu de disparaître sans prévenir. Cet outil convertit du texte ; ce n’est pas un nettoyeur (sanitiser) HTML.
Mode d’emploi
- Choisissez Encoder ou Décoder.
- Pour l’encodage, choisissez la portée : uniquement les cinq caractères dangereux (suffisant pour du HTML normal), tous les non ASCII, ou tout sauf les lettres, chiffres et espaces.
- Choisissez des références nommées, décimales ou hexadécimales. Le mode nommé se rabat sur le décimal pour les caractères sans nom.
- Tapez ou collez ; la sortie se met à jour pendant la saisie. Inverser renvoie la sortie dans l’entrée pour vérifier un aller-retour.
- Cherchez dans le tableau de référence par nom, caractère, code décimal ou groupe (par exemple « flèche » ou « grec ») et copiez une entité.
Questions fréquentes
Quels caractères faut-il échapper en HTML ?
Dans le contenu texte, < et & doivent être échappés, car ils ouvrent des balises et des entités. Dans la valeur d’un attribut, échappez aussi le guillemet qui délimite l’attribut : " en " ou ' en '. Échapper > en > n’est pas strictement obligatoire, mais c’est l’usage et c’est sans danger. Tout le reste, y compris les lettres accentuées et les emoji, peut figurer tel quel dans une page UTF-8.
Quelle est la différence entre et une espace normale ?
est U+00A0, une espace insécable. Les navigateurs ne coupent pas une ligne à cet endroit et ne fusionnent pas plusieurs d’entre elles en une seule, contrairement aux espaces ordinaires. Elle sert à garder « 10 kg » ou « M. Dupont » sur une même ligne. Utiliser des suites de pour la mise en page est le signe que le travail revient plutôt au CSS.
Faut-il utiliser ' ou ' ?
' est défini en XML et en HTML5 mais pas en HTML 4 : les très anciens navigateurs et certains clients de messagerie ne le reconnaissent pas. ' fonctionne partout, c’est pourquoi cet encodeur l’utilise pour l’apostrophe même en mode nommé. Dans une page HTML5 moderne, les deux conviennent.
L’encodage HTML suffit-il à empêcher le XSS ?
Échapper < > & " ' empêche l’injection dans le texte HTML et dans les valeurs d’attribut entre guillemets, ce qui couvre le cas le plus courant. Cela ne rend pas une valeur sûre dans un bloc <script>, un attribut style, un attribut sans guillemets ou une URL comme href="javascript:...". Chacun de ces contextes exige son propre encodage ou sa propre validation. Utilisez un moteur de templates qui échappe par défaut, et un nettoyeur comme DOMPurify quand vous devez accepter du HTML fourni par les utilisateurs.
Pourquoi vois-je &amp; ou é dans mon texte ?
&amp; signifie que le texte a été encodé en HTML deux fois : & est devenu &, puis ce & a été encodé à nouveau. Décodez une fois par couche en trop. é au lieu de é n’est pas un problème d’entité mais un décalage d’encodage : des octets UTF-8 ont été lus comme du Windows-1252 ou du Latin-1. Corrigez la déclaration de charset ou l’encodage de la connexion à la base de données ; les entités ne font que masquer le symptôme.
Références nommées, décimales et hexadécimales
Le HTML offre trois façons d’écrire le même caractère. Une référence nommée comme © est lisible, mais n’existe que pour les caractères auxquels le HTML a donné un nom. Une référence décimale comme © et une référence hexadécimale comme © fonctionnent pour tous les points de code Unicode, emoji compris : 🌲 s’écrit 🌲 ou 🌲, une seule référence pour tout le caractère, et non deux pour ses moitiés UTF-16.
Les 253 noms du tableau de cet outil correspondent au jeu HTML 4 plus '. Ils sont pris en charge par tous les navigateurs, clients de messagerie et bibliothèques HTML. HTML5 en a ajouté environ 2 000, surtout des symboles mathématiques (≂̸, ⨂), qui se décodent dans les navigateurs modernes mais qu’il vaut mieux écrire en UTF-8 simple ou en références numériques si d’anciens outils doivent manipuler le contenu.
Les noms sont sensibles à la casse : É donne É et é donne é. Quelques-uns, comme © et &, existent aussi en majuscules pour des raisons historiques, mais les formes en minuscules sont les formes standard.
Quand encoder, et quand ne pas le faire
• Affichage de saisies utilisateur sur une page : échappez les cinq caractères dangereux au moment de l’affichage, dans le modèle, pas lors de l’enregistrement en base de données.
• Exemples de code dans un article de blog ou une documentation : échappez < et & pour que les balises s’affichent comme du texte.
• Modèles d’e-mails et anciens systèmes à l’UTF-8 peu fiable : encoder tous les caractères non ASCII en références numériques permet au contenu de survivre à n’importe quel jeu de caractères.
• Pages UTF-8 modernes : n’encodez pas les lettres accentuées, les guillemets courbes ni les emoji. Les caractères simples sont plus légers, indexables et plus faciles à modifier.
• JSON, URL et chaînes JavaScript : les entités HTML n’y ont aucun sens. Utilisez respectivement l’échappement JSON, l’encodage-pourcent ou les échappements de chaînes JavaScript.
Comment les références numériques sont décodées
La spécification HTML5 définit ce qu’un parseur doit faire des références numériques inhabituelles, et ce décodeur la suit. �, les références à des points de code de substitution (�) et les valeurs au-delà de U+10FFFF deviennent le caractère de remplacement U+FFFD. Les références de € à Ÿ sont lues en Windows-1252 : – est donc un tiret demi-cadratin et € le signe euro, car c’est ce que voulaient dire les anciennes pages qui les utilisaient.
Les références nommées ne sont décodées que si elles se terminent par un point-virgule. Les navigateurs acceptent aussi quelques anciens noms sans point-virgule dans le texte, comme © ou &, mais ce comportement dépend de ce qui suit : le contenu devrait donc toujours inclure le point-virgule.
Outils gratuits similaires
- Encodeur / décodeur d’URL — Encodez ou décodez du texte en encodage-pourcent pour les URL, en mode composant, URL complète ou formulaire, et modifiez les paramètres de requête d’une URL dans un tableau.
- Encodeur / décodeur Base64 — Encodez du texte ou des fichiers en Base64, transformez des images en data URI avec extraits CSS et <img>, et décodez du Base64 en fichier avec aperçu. Rien ne quitte votre navigateur.
- Générateur de balises meta — Renseignez le titre, la description et les informations de carte sociale d’une page ; obtenez un bloc <head> complet, correctement échappé, avec compteurs de longueur en direct.
- Formateur JSON — Indentez, minifiez et validez du JSON, avec les erreurs d’analyse localisées par ligne et colonne. Dans votre navigateur, sans envoi.