Tous les outils fonctionnent dans votre navigateur — vos fichiers ne quittent jamais votre appareil.
All tools154

Développement

Encoder les entités HTML

Entités HTML, accents et espaces typographiques.

Ce que fait cet outil. Cet outil convertit du texte en entités HTML et inversement. Pour une page en français, deux points comptent : les accents ne doivent plus être encodés, et la ponctuation double exige une espace insécable.
Fonctionne dans le navigateurAucun envoiSans inscriptionFonctionne hors ligne

Comment utiliser Encoder les entités HTML

  1. Collez votre texte ou vos entités.
  2. Choisissez le sens de la conversion.
  3. Copiez le résultat.

Les espaces insécables de la ponctuation française

C'est la particularité typographique française, et elle n'existe dans aucune autre langue de ce site.

En typographie française, une espace précède les signes de ponctuation double : le point-virgule, les deux-points, le point d'exclamation et le point d'interrogation. Elle s'insère également à l'intérieur des guillemets français.

Et cette espace doit être insécable. Sans cela, le navigateur peut couper la ligne juste avant le signe, et vous obtenez un point d'interrogation orphelin en début de ligne — une faute visible immédiatement.

L'usage recommandé distingue les cas : une espace fine insécable devant le point-virgule, le point d'exclamation et le point d'interrogation, et une espace insécable de largeur normale devant les deux-points et à l'intérieur des guillemets.

Dans la pratique du web, beaucoup se contentent de   partout, ce qui est déjà nettement mieux que rien. L'espace fine s'écrit   et son rendu dépend encore de la police employée.

À l'inverse, aucune espace ne précède le point, la virgule, les points de suspension ni l'apostrophe.

Les guillemets français « » sont la norme au premier niveau ; les guillemets anglais servent aux citations imbriquées. Les guillemets droits du clavier ne sont pas de la typographie française.

Les accents ne s'encodent plus

Le second point important, et il contredit une habitude tenace.

Les écritures comme é pour é, à pour à ou ç pour ç datent d'une époque où l'encodage de la page était incertain ou limité au Latin-1.

Aujourd'hui, pratiquement toute page utilise UTF-8, ce qui permet d'écrire é, è, ê, à, ç, ù, œ et æ directement.

Il faut seulement deux choses : que le fichier soit réellement enregistré en UTF-8 et que l'encodage soit déclaré dans l'en-tête. Sans cette déclaration, le navigateur devine, et devine mal.

D'où le texte cassé classique : « é » à la place de « é ». L'origine est presque toujours l'une de trois : le fichier enregistré dans un autre encodage, la déclaration qui ne correspond pas, ou la base de données et sa connexion qui ne sont pas en UTF-8.

Ce dernier cas est le plus oublié : il ne suffit pas de la page, il faut aussi vérifier l'interclassement des tables et le jeu de caractères de la connexion.

Un mot sur le œ : cette ligature est une lettre à part entière en français, et l'écrire « oe » est une faute d'orthographe, pas une simplification. Elle existe en UTF-8, utilisez-la.

Ce qu'il faut vraiment encoder

Seule une poignée de caractères a un sens syntaxique en HTML.

Ce qu'il faut vraiment encoder
CaractèreEntitéQuand
&&toujours
<<toujours
>>recommandé dans le texte
""dans les valeurs d'attribut
''dans les valeurs d'attribut

L'esperluette est le cas le plus important puisqu'elle introduit une entité. Une & isolée dans une URL, séparant des paramètres, doit s'écrire & pour que le HTML soit valide.

C'est aussi là que se joue la sécurité : lorsque vous affichez du texte saisi par un utilisateur, encoder ces caractères protège contre les injections de script.

Pour cela, ne vous fiez pas à un outil comme celui-ci mais à la fonction d'échappement de votre framework ou de votre moteur de gabarits : elle connaît le contexte — texte HTML, attribut, JavaScript, URL — et chacun demande un échappement différent.

Enfin, si vous récupérez du texte depuis Word ou un PDF, méfiez-vous des caractères invisibles qui suivent : espaces insécables involontaires et traits d'union conditionnels expliquent bien des mises en page bizarres.

Questions fréquentes

Faut-il une espace avant les deux-points ?

Oui, en typographie française, et elle doit être insécable pour éviter un rejet en début de ligne.

Dois-je encoder les accents ?

Non. Avec UTF-8 on écrit é, à, ç directement, à condition de déclarer l'encodage.

Pourquoi mon texte affiche-t-il des caractères bizarres ?

Presque toujours parce que l'encodage déclaré ne correspond pas au réel, ou que la base n'est pas en UTF-8.

Peut-on écrire « oe » à la place de œ ?

Non, c'est une faute d'orthographe. La ligature existe en UTF-8.

Quels caractères faut-il encoder ?

Surtout & et <, ainsi que les guillemets dans les valeurs d'attribut.

Mes données sont-elles transmises ?

Non, tout est traité dans votre navigateur.