Aller au contenu principal

Encodeur et décodeur HTML — outil gratuit

Encodez les caractères spéciaux en entités HTML ou décodez les entités en texte brut. Instantanément, dans votre navigateur.

Fonctionne hors ligne une fois chargé
Sortie:
Exemples:
Texte brut / HTML
HTML encodé
La sortie apparaîtra ici...
Référence des entités HTML courantes
&&
<&lt;
>&gt;
"&quot;
'&#39;
·&nbsp;
©&copy;
®&reg;
™&trade;
€&euro;
—&mdash;
…&hellip;

Utilisations courantes

  • Encoder le contenu pour les flux RSSEncodez le contenu HTML pour les descriptions des éléments de flux RSS — requis par la norme RSS 2.0.
  • Assainir l'entrée de l'utilisateur pour la sortie HTMLEncodez les chaînes fournies par l'utilisateur avant de les insérer dans HTML — empêche les attaques par injection XSS.
  • Coder les caractères spéciaux pour les e-mails HTMLCodez des caractères comme &, <, > et © en tant qu'entités HTML pour qu'ils s'affichent correctement dans tous les clients de messagerie.
  • Coder le contenu utilisateur pour l'affichage WebPrévention des attaques XSS en codant le contenu généré par l'utilisateur avant de l'afficher sur les pages HTML.
  • Coder le contenu pour XMLCodez les caractères spéciaux pour les fichiers XML, les flux RSS, les sitemaps et les charges utiles SOAP.

Comment ça marche

L'encodage et le décodage HTML ici s'exécutent entièrement dans votre navigateur avec un remplacement par expression régulière écrit à la main et une table de correspondance d'entités nommées codée en dur — sans bibliothèque d'encodage tierce, sans aller-retour serveur. Pour décoder des entités nommées peu courantes (comme &aacute; ou &ldquo;), l'outil délègue à l'analyseur HTML propre du navigateur comme repli sans coût.

  1. 1
    Une expression régulière analyse les caractères à remplacer
    À l'encodage, l'une de deux expressions régulières conscientes de l'Unicode s'exécute sur votre saisie : un motif ciblé couvrant environ 25 caractères courants significatifs en HTML et spéciaux, ou un motif plus large qui capture chaque point de code au-dessus de U+007F. Chaque correspondance est interceptée caractère par caractère.
  2. 2
    Une table de correspondance ou codePointAt() produit l'entité
    Pour la sortie en entités nommées, les caractères trouvés sont recherchés dans une table codée en dur (par exemple & → &amp;, © → &copy;). Pour la sortie décimale ou hexadécimale, String.codePointAt() récupère le point de code Unicode et le formate en &#NNN; ou &#xNNN; — les paires de substitution sont gérées correctement car l'expression régulière utilise le drapeau Unicode 'u'.
  3. 3
    Une seule passe d'expression régulière décode les entités en caractères
    Au décodage, une seule passe d'expression régulière identifie tous les jetons d'entité (&amp;, &#65;, &#x41;, etc.) et route chacun vers le bon gestionnaire : parseInt hexadécimal (base 16), Number() décimal, recherche inverse nommée, ou — pour toute entité absente de la table codée en dur — un élément textarea dont le innerHTML est analysé nativement par le navigateur, retournant le bon caractère depuis la table d'entités intégrée du navigateur.
  4. 4
    Le résultat apparaît instantanément ; copie dans le presse-papiers via l'API Clipboard
    La sortie est recalculée de façon synchrone à chaque frappe via useMemo de React. La copie utilise navigator.clipboard.writeText() — l'API Clipboard asynchrone moderne — avec une capture silencieuse pour les contextes restreints.

Outils associés

Questions fréquemment posées