Aller au contenu
Favoris

Encodeur et décodeur d’entités HTML

Mis à jour :

Convertissez du texte brut en entités HTML (&, <, ©) ou décodez des entités pour retrouver des caractères lisibles. Collez votre texte, choisissez l’encodage ou le décodage, puis copiez le résultat.

Encoder ou décoder des entités HTML

Champs de saisie
Si activé, le résultat se met à jour automatiquement dès que vous modifiez une valeur.

Formule d’encodage des entités HTML

Formule
\[ E(c)=\begin{cases} n(c) & c \in S \\ r(c) & \mathrm{cp}(c)>127 \\ c & \text{sinon} \end{cases} \]

Où :

  • \(E(c)\) — le résultat de l’encodage d’un seul caractère d’entrée \(c\)
  • \(S\) — les cinq caractères spéciaux en HTML : &, <, >, " et '
  • \(n(c)\) — l’entité nommée correspondant au caractère ; par exemple, & devient &amp;
  • \(r(c)\) — la référence numérique décimale : &# suivi du point de code Unicode et d’un point-virgule ; par exemple, © devient ©
  • \(\mathrm{cp}(c)\) — le point de code Unicode de \(c\) ; ce cas ne s’applique que lorsque la conversion des caractères non ASCII est activée

L’encodage remplace chaque caractère spécial en HTML par son entité nommée et, facultativement, chaque caractère dont le point de code est supérieur à 127 par une référence numérique. Le décodage est l’opération inverse : les références nommées, décimales et hexadécimales sont reconverties en caractères qu’elles représentent.

Entités HTML : exemple de calcul

Exemple : encodage du texte proposé par défaut Tom & Jerry said "5 < 10" — it's © WPCalc avec l’option « Caractères non ASCII » réglée sur « Convertir en entités numériques ».

\[ \text{tiret cadratin : point de code } 8212 \;\to\; \text{référence numérique}, \qquad \text{symbole de droit d’auteur : point de code } 169 \;\to\; \text{référence numérique} \]

Résultat : Tom &amp; Jerry said &quot;5 &lt; 10&quot; — it's © WPCalc

Le récapitulatif des entités présente six conversions distinctes : & → &amp;, " → &quot; (deux fois), < → &lt;, ' → ', — → — et © → ©.

Comment utiliser le convertisseur d’entités HTML

  1. Collez votre contenu dans le champ Texte ou chaîne encodée en HTML : du texte brut pour l’encodage, ou du texte contenant des entités comme &amp;, &lt; ou © pour le décodage.
  2. Réglez Opération sur Encoder → entités HTML ou Décoder les entités → texte brut.
  3. Lors de l’encodage, choisissez comment traiter les Caractères non ASCII (encodage uniquement) : Convertir en entités numériques (© → ©) ou Laisser inchangés. Ce réglage est ignoré lors du décodage.
  4. Consultez le résultat sous Résultat de la conversion et copiez-le. Le Récapitulatif des entités indique chaque conversion effectuée et son nombre d’occurrences ; lors du décodage, il signale aussi les entités non reconnues qui ont été laissées inchangées.

Que sont les entités HTML ?

Une entité HTML est une séquence d’échappement qui représente un seul caractère. Elle existe sous trois formes équivalentes : les références nommées comme &amp; et &copy;, les références numériques décimales comme © et les références hexadécimales comme ©. Les trois formes du symbole de droit d’auteur s’affichent exactement comme le même caractère dans un navigateur : vous pouvez donc les mélanger librement.

Les entités existent parce que plusieurs caractères ont une signification structurelle en HTML. Une esperluette commence une référence, tandis que < et > délimitent les balises. Un < non échappé dans votre texte peut être interprété comme le début d’une balise et faire disparaître sans avertissement les mots qui suivent, tandis qu’un & isolé rend le balisage invalide. Remplacer ces caractères par des entités garantit qu’ils s’affichent comme du texte.

L’échappement est aussi une mesure de sécurité élémentaire. Chaque fois qu’une saisie utilisateur est réaffichée sur une page — commentaire, terme recherché ou message d’erreur — laisser < non échappé permet à un attaquant d’injecter du balisage ou des scripts. L’encodage des cinq caractères spéciaux neutralise les voies d’injection les plus courantes. Les références numériques présentent un autre avantage : elles permettent d’insérer n’importe quel caractère Unicode, des tirets cadratins aux émojis, dans un fichier par ailleurs entièrement en ASCII.

Lors du décodage, gardez à l’esprit que &nbsp; devient une espace insécable (U+00A0). Elle ressemble à une espace ordinaire, mais se comporte différemment pour les retours à la ligne et les recherches. Le décodeur reconnaît les références nommées HTML5 les plus courantes ainsi que toutes les références numériques valides ; tout ce qu’il ne reconnaît pas reste inchangé et est signalé sous le récapitulatif.

Référence des entités HTML courantes

Caractère Entité nommée Référence décimale Utilisation courante
& &amp; & Chaînes de requête, valeurs d’attributs
< &lt; < Exemples de code, comparaisons mathématiques
> &gt; > Exemples de code, chevrons fermants
" &quot; " Guillemets doubles dans les attributs
' ' ' Apostrophes (forme compatible avec HTML 4)
© &copy; © Mentions de droit d’auteur
— &mdash; — Tiret cadratin dans la ponctuation
… &hellip; … Points de suspension
™ &trade; ™ Symbole de marque commerciale
(espace) &nbsp;   Espace insécable
€ &euro; € Montants en devises
° &deg; ° Températures, angles

Conseils et limites

  • Évitez le double encodage : passer dans l’encodeur un texte qui contient déjà des entités transforme &amp; en &amp;amp;. Décodez d’abord, puis réencodez si vous souhaitez n’effectuer qu’un seul passage d’encodage.
  • L’apostrophe est encodée sous la forme ' plutôt que &apos;, qui n’existe qu’en HTML5, afin que le résultat reste également valide dans les documents HTML 4.
  • L’encodage ne remplace que les cinq caractères spéciaux en HTML et, facultativement, les caractères non ASCII ; les lettres latines accentuées ne sont modifiées que si l’option des références numériques est activée.
  • Les entités HTML ne sont pas de l’encodage d’URL. Les séquences précédées du signe pourcentage, comme %26, sont destinées aux URL : utilisez l’encodeur d’URL ou le décodeur d’URL pour celles-ci, et non cet outil.
  • Pour connaître le point de code d’un caractère avant de le convertir, le convertisseur ASCII affiche directement sa valeur numérique.
  • Si vous avez besoin d’une représentation adaptée à la transmission de blocs de texte entiers, plutôt que d’un échappement caractère par caractère, l’encodeur Base64 est généralement plus approprié.

Questions fréquentes

Comment encoder des entités HTML à la main, sans outil ?

Parcourez votre texte à la recherche des cinq caractères spéciaux et remplacez chacun d’eux : & → &, → >, " → ", ' → '. Pour les autres symboles, trouvez le point de code Unicode du caractère et écrivez-le sous la forme &#...; avec un point-virgule. Par exemple, © a pour point de code 169 : vous écrivez donc ©. La forme hexadécimale fonctionne aussi : © s’affiche de la même façon. Encodez toujours les esperluettes en premier ; si vous remplacez d’abord < et qu’il reste un &, le résultat peut encore perturber l’analyseur HTML.

Pourquoi mon texte affiche-t-il littéralement < au lieu du signe inférieur à ?

Votre texte a été encodé deux fois : < a été transformé en <, puis le & de cette entité a été encodé à nouveau, ce qui a produit &lt;. Pour corriger cela, décodez deux fois : le premier passage donne <, le second donne <. Pour éviter ce problème, décodez les entités existantes avant de réencoder et ne passez jamais dans l’encodeur une chaîne déjà échappée. Le récapitulatif des entités vous aidera à repérer les entrées &amp; encodées deux fois.

Quelle est la différence entre les entités HTML et l’encodage d’URL (encodage avec le signe pourcentage) ?

Ils répondent à des besoins différents. Les entités HTML (&, ©) échappent les caractères afin qu’un navigateur les affiche sans risque dans une page web. Les séquences précédées du signe pourcentage (%26, %C2%A9) échappent les caractères destinés aux URL et aux chaînes de requête, où les espaces, & et = ont une signification particulière. Si vous collez %26 dans une page HTML, il s’affichera littéralement sous la forme %26, et non comme une esperluette. Utilisez cet outil pour le balisage et un encodeur d’URL pour les liens.

Quels caractères faut-il toujours encoder pour rendre du HTML sûr ?

Au minimum, l’esperluette ainsi que les signes inférieur à et supérieur à, car & commence une référence d’entité et < commence une balise. L’échappement des guillemets est surtout important dans les valeurs d’attributs : " → " et ' → ' empêchent qu’une valeur d’attribut se termine prématurément. Lors de l’affichage de contenus fournis par les utilisateurs — commentaires, termes recherchés, valeurs de formulaires — l’encodage de ces caractères bloque les techniques d’injection HTML et de scripts les plus courantes, puisque toute balise écrite par un attaquant s’affiche comme du texte inoffensif.

Dois-je convertir les caractères non ASCII comme é, © ou — en entités numériques ?

Cela dépend de l’encodage de votre fichier. Si votre document est déclaré en UTF-8 (charset=utf-8), vous pouvez laisser les lettres accentuées, les tirets et les symboles tels quels : les navigateurs les prennent en charge nativement et le code source reste lisible. Les convertir en références numériques comme © garantit que le fichier est entièrement en ASCII, ce qui est utile lorsque l’encodage est inconnu, lors de l’envoi de HTML par courriel ou lors du collage dans des systèmes qui altèrent les caractères Unicode. Les émojis fonctionnent aussi comme références numériques, avec leur point de code complet.

Pourquoi   se comporte-t-elle bizarrement après le décodage de mon texte ?

Parce que   se décode en espace insécable (U+00A0), et non en espace ordinaire (U+0020). Elles semblent identiques visuellement, mais l’espace insécable empêche le retour à la ligne à cet endroit, peut fausser les comparaisons et les recherches de chaînes, et perturber le code qui supprime les espaces ou découpe le texte à chaque espace. Si votre texte décodé contient des différences invisibles, essayez de remplacer U+00A0 par des espaces ordinaires : la plupart des éditeurs de texte permettent de rechercher directement ce caractère ou sa forme numérique.

Quelle est la différence entre ', &apos; et ' pour une apostrophe ?

Les trois représentent le caractère apostrophe. ' est la référence numérique décimale et ' son équivalent hexadécimal : toutes deux sont valides partout. ' est une référence nommée introduite seulement en HTML5 ; les anciens analyseurs HTML 4 ne la reconnaissent pas. C’est pourquoi de nombreux encodeurs, dont celui-ci, produisent la forme numérique pour une compatibilité maximale. En pratique, tous les navigateurs modernes affichent les trois formes de manière identique : vous pouvez donc décoder et réencoder sans perdre le caractère.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *