HTML Encoder

HTML Encoder / Decoder

Échappez `& < > " '` en entités HTML sûres, ou décodez du texte échappé en entités vers du texte brut. Quatre niveaux d'encodage — Minimal, Nommé, Numérique, Tout non-ASCII. Compatible UTF-8 + emoji + CJC, dans votre navigateur.

Par défaut, choisissez Minimal — n'échappez que & < > " ', les cinq caractères qui cassent les contextes corps / attribut HTML. C'est ce que fait tout moteur de templates moderne. Utilisez Entités nommées si vous voulez copyright / nbsp / flèches etc. en codes lisibles (&copy; au lieu de &#169;). Utilisez Numérique lorsque le HTML traverse des chaînes qui ne comprennent pas les entités nommées. Utilisez Tout non-ASCII pour cibler des systèmes strictement ASCII (anciens serveurs e-mail, APIs cassées).

&apos; est valide en XML et HTML5, mais pas en HTML 4.01 — les anciens navigateurs l'affichent comme le texte littéral '. La référence numérique &#39; fonctionne partout. Le décodeur accepte &apos; en entrée pour la compatibilité.

Entrée
Sortie

Conçu pour une sortie HTML sûre

Échappez le contenu utilisateur pour vos modèles, décodez les données encodées en entités — avec quelques petites touches qui rendent l'outil vraiment agréable à utiliser.

Quatre modes d'encodage

Minimal n'échappe que les cinq caractères dangereux en HTML (& < > " ') — la valeur par défaut idéale pour le contenu utilisateur normal. Nommé utilise des entités HTML5 lisibles comme &copy; / &nbsp; / &hearts; lorsqu'il en existe une. Numérique encode chaque point de code non-ASCII sous la forme &#NN;. Tout non-ASCII encode chaque point de code en dehors de l'ASCII imprimable, pour les chaînes de traitement legacy / ASCII uniquement.

Décodez n'importe quelle entité

Le décodeur gère les entités nommées (&copy;), numériques décimales (&#169;) et numériques hexadécimales (&#xA9;). Les points de code en paire de substitution (emoji, écritures anciennes) font des allers-retours corrects via UTF-16.

Aperçu en direct

La sortie se met à jour à chaque frappe — aucun bouton Encoder / Décoder à presser. Changez de direction en un clic; le bouton Inverser renvoie la sortie vers l'entrée pour enchaîner les transformations.

Compatible UTF-8 + emoji + CJC

Chaque point de code Unicode fait un aller-retour propre : 中文, العربية, русский, हिंदी, 🎉, Þorgeir. L'encodeur itère par point de code (et non avec charAt), donc les paires de substitution restent intactes.

Confidentialité dès la conception

Votre texte reste sur votre appareil. L'encodeur, le décodeur et la table d'entités nommées s'exécutent tous localement en JavaScript. Ouvrez DevTools → Network et vérifiez l'absence totale de requêtes sortantes.

Compact + rapide

JavaScript pur, sans runtime de framework. Le chargement à froid pèse moins de 25 Ko gzippés. Un document HTML de 100 Ko s'encode en moins de 5 ms.

Comment encoder ou décoder des entités HTML

Quatre étapes du texte brut à une sortie sûre en entités.

  1. 1

    Collez votre texte

    Déposez du texte brut ou du HTML dans le panneau Entrée. Tout est accepté — commentaires d'utilisateurs, articles de blog, emoji, CJC, écritures RTL. L'encodeur itère par point de code, ainsi les séquences multi-octets restent intactes.

  2. 2

    Choisissez la direction et le mode

    Réglez la Direction sur Encoder (texte → entités) ou Décoder (entités → texte). Pour Encoder, choisissez le mode : Minimal pour les modèles, Nommé pour des entités lisibles, Numérique pour le non-ASCII en &#NN;, Tout non-ASCII pour une sortie purement ASCII.

  3. 3

    Observez l'aperçu en direct

    La sortie se met à jour à chaque frappe. Comparez les modes en temps réel en changeant la liste déroulante. Utilisez Inverser pour renvoyer la sortie vers l'entrée — pratique pour vérifier un aller-retour (encoder puis décoder = original).

  4. 4

    Copier ou télécharger

    Utilisez l'icône de copie pour envoyer le résultat dans votre presse-papiers, ou l'icône de téléchargement pour l'enregistrer en output.encode.html / output.decode.txt. La différence de taille (caractères / octets entrée → sortie) montre exactement de combien l'encodage a gonflé ou réduit le texte.

Conçu pour le développement web au quotidien

Quatre scénarios courants où un outil de navigateur axé sur la confidentialité fait mieux que coller du code dans un encodeur en ligne au hasard.

Intégrer en toute sécurité du contenu utilisateur dans un modèle

Commentaires d'utilisateurs, réponses de formulaires, requêtes de recherche — tout ce qui vient de l'extérieur et finit dans un <p>, un <li> ou un attribut. Passez-le par un encodage en mode Minimal avant de le concaténer dans votre HTML, et vous êtes à l'abri des balises cassées et des charges XSS les plus simples.

Lire des données échappées en entités depuis une API

Certaines APIs renvoient des chaînes déjà échappées en entités (flux RSS, certains exports CMS, HTML scrapé). Collez, cliquez sur Décoder, récupérez l'Unicode original. Le décodeur gère les entités nommées, décimales et hexadécimales, y compris les paires de substitution.

Lignes d'objet d'e-mail et balises meta

<title>, <meta name="description">, <meta property="og:title"> — tous nécessitent un échappement en entités pour les caractères spéciaux. Encodez votre titre une fois, collez-le dans les trois.

Contenu sensible qui ne peut pas aller à un service tiers

Contenu de CMS interne, données clients, modèles sous NDA — tout ce que vous ne pouvez pas coller dans un encodeur cloud. L'outil entièrement navigateur garde chaque octet sur votre ordinateur. Ouvrez DevTools → Network et vérifiez que rien ne sort.

100 % privé — fonctionne dans votre navigateur

Votre texte ne quitte jamais votre appareil. Ouvrez DevTools → Network et vous verrez zéro requête sortante pendant l'encodage ou le décodage.

  • L'encodeur, le décodeur et la table de recherche d'entités nommées s'exécutent tous en JavaScript sur votre machine — pas de conversion côté serveur, pas d'API tierce.
  • Les points de code en paire de substitution (emoji, écritures anciennes) sont gérés par itération sur les points de code, pas par mappage octet par octet — donc un 🎉 collé reste un 🎉 après un aller-retour.
  • Pas d'identifiant, pas de télémétrie sur le contenu textuel. Nous n'utilisons qu'un seul cookie pour l'état de consentement aux cookies et un autre pour la préférence de langue.

Guides connexes

Lectures triées sur le volet sur l'échappement HTML, les tables d'entités et le templating sûr.

Questions fréquentes

Quel mode dois-je choisir ?

Par défaut, choisissez Minimal — n'échappez que & < > " ', les cinq caractères qui cassent les contextes corps / attribut HTML. C'est ce que fait tout moteur de templates moderne. Utilisez Entités nommées si vous voulez copyright / nbsp / flèches etc. en codes lisibles (&copy; au lieu de &#169;). Utilisez Numérique lorsque le HTML traverse des chaînes qui ne comprennent pas les entités nommées. Utilisez Tout non-ASCII pour cibler des systèmes strictement ASCII (anciens serveurs e-mail, APIs cassées).

Pourquoi `'` est-il échappé en `&#39;` plutôt qu'en `&apos;` ?

&apos; est valide en XML et HTML5, mais pas en HTML 4.01 — les anciens navigateurs l'affichent comme le texte littéral '. La référence numérique &#39; fonctionne partout. Le décodeur accepte &apos; en entrée pour la compatibilité.

Les emoji et caractères CJC sont-ils préservés ?

Oui. L'encodeur itère sur les points de code (et non sur les unités UTF-16), de sorte qu'un emoji comme 🎉 (U+1F389) devient &#127881; à l'encodage et fait un aller-retour correct au décodage. Idem pour le CJC (中文 → &#20013;&#25991; en mode numérique).

Est-il sûr d'intégrer une saisie utilisateur directement dans du HTML après encodage ?

Pour le corps HTML et les attributs — oui, avec le mode Minimal. Pour les contextes URL (href="...") il faut aussi un encodage URL. Pour le JavaScript ou le CSS inline, ni l'encodage HTML ni l'encodage URL ne suffisent — utilisez un moteur de templates qui comprend ces contextes. Ne collez jamais de saisie utilisateur non échappée dans un bloc <script>.

Quelque chose est-il envoyé à votre serveur ?

Non. L'encodeur, le décodeur et la table de recherche d'entités nommées s'exécutent tous en JavaScript sur votre appareil. Ouvrez DevTools → Network et vous verrez zéro requête sortante pendant l'encodage ou le décodage. Collez des secrets, des données clients, des modèles internes — rien ne quitte votre ordinateur.