Encodeur / Décodeur HTML

Encodez ou décodez les entités HTML en toute sécurité.

Saisissez du HTML à convertir

Les cinq caracteres qui cassent le HTML

Le HTML donne une signification speciale a une poignee de caracteres, donc les placer tels quels dans une page casse le rendu ou ouvre une faille de securite. L'encodage les remplace par des entites nommees que le navigateur affiche litteralement :

CaractereEntiteRole en HTML
&&Demarre chaque entite — doit toujours etre encode en premier
<&lt;Ouvre une balise
>&gt;Ferme une balise
"&quot;Delimite les valeurs d'attribut
'&#39;Delimite les valeurs d'attribut (guillemets simples)

Exemple : <div class="hello">World & "Friends"</div> s'encode en &lt;div class=&quot;hello&quot;&gt;World &amp; &quot;Friends&quot;&lt;/div&gt; — collez cela dans une page et le navigateur affiche le balisage comme du texte au lieu de rendre une div.

Modes encodage et decodage

Changez de mode avec le commutateur en haut ; la conversion se fait en direct a mesure que vous tapez. Encoder remplace les cinq caracteres speciaux ci-dessus. Decoder est plus general : il resout toute entite que le navigateur connait — nommee (&nbsp;, &copy;, &eacute;), decimale (&#233;) et hexadecimale (&#xE9;) — de sorte qu'il nettoie en une passe un texte parseme d'entites recupere de pages web ou d'exports de CMS.

Pourquoi c'est important : afficher du code et prevenir le XSS

  • Afficher du code sur une page : pour afficher un extrait HTML dans un article de blog ou une doc, il doit etre encode en entites, sinon le navigateur le rend au lieu de le montrer.
  • Prevention du XSS : une entree utilisateur renvoyee dans du HTML sans encodage permet a un attaquant d'injecter des balises <script>. Encoder a la sortie transforme l'attaque en texte visible inoffensif. C'est la regle d'echappement en sortie la plus importante du developpement web.
  • Corriger un texte double-encode : si vous voyez &amp;lt; dans le rendu, le texte a ete encode deux fois. Passez-le au decodage jusqu'a stabilisation.

Encodage HTML vs. encodage d'URL

Ils resolvent des problemes differents et ne sont pas interchangeables : les entites HTML rendent le texte sur a l'interieur du balisage ; l'encodage pourcent rend le texte sur a l'interieur des URL. Une valeur qui entre dans la chaine de requete d'un href a besoin de l'encodeur d'URL ; le texte de lien visible a besoin de cet outil. Tout ici tourne entierement dans votre navigateur — rien de ce que vous collez n'est envoye a un serveur. Egalement utile a cote : le convertisseur Markdown vers HTML pour generer du balisage et l'outil Base64 pour les data URI.

Foire aux questions

Pourquoi dois-je encoder le HTML ?
Des caracteres comme <, > et & ont une signification structurelle en HTML. Les encoder en entites (&lt;, &gt;, &amp;) fait que le navigateur les affiche comme du texte au lieu de les interpreter — essentiel pour afficher du code et pour prevenir les attaques XSS.
Quels caracteres sont encodes ?
Les cinq caracteres critiques du HTML : & → &amp;amp;, < → &amp;lt;, > → &amp;gt;, " → &amp;quot;, et ' → &amp;#39;. Cet ensemble est exactement ce qu'exige un echappement de sortie sur.
Peut-il decoder des entites comme &nbsp; et &#233; ?
Oui. Le mode Decoder resout toutes les entites que le navigateur comprend — nommees, decimales et hexadecimales — pas seulement les cinq que le mode Encoder produit.
Est-ce la meme chose que l'encodage d'URL ?
Non. L'encodage HTML rend le texte sur a l'interieur du balisage ; l'encodage d'URL (pourcent) rend le texte sur a l'interieur des URL. Une valeur de chaine de requete a besoin de l'encodage %-, un texte de page visible a besoin d'entites — utilisez chacun dans son propre contexte.
L'encodage previent-il tous les XSS ?
Il couvre le cas le plus courant : du texte utilisateur renvoye dans le corps HTML ou des attributs entre guillemets. D'autres contextes (chaines JavaScript, CSS, URL) ont besoin de leurs propres regles d'echappement — l'encodage est necessaire mais specifique au contexte.