0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
Configuration
Codifie et décode des entités HTML. Essentiel codifie uniquement les 5 caractères qui rompent le HTML: & < > " '. Extendu codifie en outre tous les caractères non-ASCII. Choisis entre des entités avec nom (&amp;), des décimales (&#38;) ou des hexadécimales (&#x26;).
Opération
Portée
Format
0

Comment ça marche

Les entités HTML représentent des caractères qui ont une signification spéciale dans le balisage (< > & " ') ou qui ne sont pas ASCII, au moyen de séquences comme &lt;, &amp; ou &#169;. Ainsi, le navigateur les affiche comme du texte au lieu de les interpréter comme du code.

Il existe trois formats équivalents : nommé (&copy;), décimal (&#169;) et hexadécimal (&#xA9;). Les trois produisent le même caractère ; le nommé est plus lisible mais n'existe que pour un ensemble connu.

La portée « essentielle » n'échappe que les caractères qui cassent le HTML (& < > " ') ; la portée « tous » échappe en plus tout caractère non ASCII.

Exemples

<a href="#">&lt;a href=&quot;#&quot;&gt;L'échappement empêche le navigateur d'interpréter les balises et les affiche comme du texte.
5 < 10 & 3 > 15 &lt; 10 &amp; 3 &gt; 1
© 2024 · €&copy; 2024 · &euro;Avec la portée « tous » et le format nommé. En décimal, ce serait &#169; et &#8364; ; en hexadécimal, &#xA9; et &#x20AC;.

Cas d'usage

  • Afficher du code HTML comme du texte sur une page (exemples, documentation) sans qu'il soit rendu.
  • Échapper l'entrée de l'utilisateur avant de l'insérer dans le HTML pour prévenir le XSS.
  • Insérer des symboles spéciaux (©, €, →, ½) de manière portable entre encodages.
  • Décoder du texte avec des entités copié depuis le code source d'une page.

Questions fréquentes

Quel format est le meilleur : nommé, décimal ou hexadécimal ?

Le nommé (&copy;) est le plus lisible, mais ne couvre que les caractères ayant un nom défini. Le décimal (&#169;) et l'hexadécimal (&#xA9;) fonctionnent pour tout caractère Unicode, ils sont donc l'option sûre pour les symboles peu courants.

Encoder les entités empêche-t-il les attaques XSS ?

C'est une part importante, mais l'échappement doit se faire selon le contexte (contenu HTML, attribut, JavaScript ou URL). Ne vous fiez pas à une seule couche : utilisez aussi les protections du framework.

Quels sont les caractères qu'il faut toujours échapper ?

& < et > dans le contenu, et en plus " et ' à l'intérieur des valeurs d'attributs. La portée « essentielle » couvre exactement cet ensemble.

Mon texte est-il envoyé à un serveur ?

Non. L'encodage et le décodage se font entièrement dans votre navigateur.