Codage des caractères HTML : table ISO-8859-1 et UTF-8
Sommaire3 sections
Un symbole comme « € » ou « é » peut s’afficher correctement dans un navigateur, ou se transformer en suite de caractères illisibles selon l’encodage utilisé par la page. Ce problème vient presque toujours du même endroit : la page annonce un encodage (ISO-8859-1 ou UTF-8) qui ne correspond pas à la façon dont le caractère a été écrit dans le code source.
Les entités HTML existent justement pour éviter ce genre de souci : plutôt que d’écrire directement un caractère spécial dans le code, on écrit son équivalent sous forme de code, que le navigateur affiche toujours correctement, quel que soit l’encodage déclaré par la page.
ISO-8859-1 ou UTF-8, deux façons d’encoder le texte
L’ISO-8859-1, aussi appelé Latin-1, code chaque caractère sur un seul octet, ce qui limite le jeu de caractères disponibles aux langues d’Europe de l’Ouest. L’UTF-8 code les caractères sur un nombre variable d’octets, ce qui lui permet de couvrir la quasi-totalité des écritures existantes, du cyrillique aux idéogrammes chinois. La quasi-totalité des sites récents utilise l’UTF-8, mais un certain nombre de pages plus anciennes, ou générées par des outils datés, continuent de s’appuyer sur l’ISO-8859-1.
Table des correspondances
Le tableau qui suit reprend, pour chaque caractère courant, le raccourci clavier Windows (le code Alt à taper sur le pavé numérique), le code numérique ISO-8859-1 et l’entité nommée en UTF-8. Ces deux dernières colonnes montrent le code tel qu’il s’écrit dans une page HTML, avec l’esperluette échappée pour qu’il reste lisible ici plutôt que de s’afficher sous sa forme finale. Pour les codes 128 à 158 (guillemets typographiques, tiret cadratin, symbole euro), la norme ISO-8859-1 stricte ne prévoit rien à ces emplacements : ce sont, en théorie, des caractères de contrôle. Dans les faits, les navigateurs appliquent l’encodage Windows-1252 dès qu’une page déclare l’ISO-8859-1, ce qui explique pourquoi ces symboles s’affichent malgré tout correctement.
| Symbole | Code clavier | Code ISO-8859-1 | Entité UTF-8 | Description |
|---|---|---|---|---|
| espace | Alt+ 0160 |   ; |   ; | Espace insécable |
| ¡ | Alt+ 0161 | ¡ ; | ¡ ; | Exclamation inversée |
| ¢ | Alt+ 0162 | ¢ ; | ¢ ; | Symbole centime |
| £ | Alt+ 0163 | £ ; | £ ; | Symbole livre |
| ¤ | Alt+ 0164 | ¤ ; | ¤ ; | Symbole monétaire |
| ¥ | Alt+ 0165 | ¥ ; | ¥ ; | Signe Yen |
| ¦ | Alt+ 0166 | ¦ ; | ¦ ; | Barre verticale interrompue |
| § | Alt+ 0167 | § ; | § ; | Signe section |
| ¨ | Alt+ 0168 | ¨ ; | ¨ ; ou &die ; | Tréma |
| © | Alt+ 0169 | © ; | © ; | Copyright |
| ª | Alt+ 0170 | ª ; | ª ; | Ordinal féminin |
| « | Alt+ 0171 | « ; | « ; | Chevron gauche ou guillemet gauche |
| ¬ | Alt+ 0172 | ¬ ; | ¬ ; | Signe non |
| | Alt+ 0173 | ­ ; | ­ ; | Tiret conditionnel |
| ® | Alt+ 0174 | ® ; | ® ; | Marque déposée |
| ¯ | Alt+ 0175 | ¯ ; | ¯ ; | Macron |
| ° | Alt+ 0176 | ° ; | ° ; | Signe degrés |
| ± | Alt+ 0177 | ± ; | ± ; | Plus ou moins |
| ² | Alt+ 0178 | ² ; | ² ; | Deux exposant |
| ³ | Alt+ 0179 | ³ ; | ³ ; | Trois exposant |
| ´ | Alt+ 0180 | ´ ; | ´ ; | Accent aigu |
| µ | Alt+ 0181 | µ ; | µ ; | Signe micro |
| ¶ | Alt+ 0182 | ¶ ; | ¶ ; | Signe paragraphe |
| · | Alt+ 0183 | · ; | · ; | Point milieu |
| ¸ | Alt+ 0184 | ¸ ; | ¸ ; | Cédille |
| ¹ | Alt+ 0185 | ¹ ; | ¹ ; | Un exposant |
| º | Alt+ 0186 | º ; | º ; | Ordinal masculin |
| » | Alt+ 0187 | » ; | » ; | Chevron droit ou guillemet droit |
| ¼ | Alt+ 0188 | ¼ ; | ¼ ; | Fraction un quart |
| ½ | Alt+ 0189 | ½ ; | ½ ; | Fraction un demi |
| ¾ | Alt+ 0190 | ¾ ; | ¾ ; | Fraction trois-quarts |
| ¿ | Alt+ 0191 | ¿ ; | ¿ ; | Point d'interrogation inversé |
| À | Alt+ 0192 | À ; | À ; | A accent grave majuscule |
| Á | Alt+ 0193 | Á ; | Á ; | A accent aigu majuscule |
| Â | Alt+ 0194 | Â ; | Â ; | A accent circonflexe majuscule |
| Ã | Alt+ 0195 | Ã ; | Ã ; | A tilde majuscule |
| Ä | Alt+ 0196 | Ä ; | Ä ; | A tréma majuscule |
| Å | Alt+ 0197 | Å ; | Å ; | A anneau majuscule |
| Æ | Alt+ 0198 | Æ ; | Æ ; | AE majuscule (digramme soudé ae, lettre) |
| Ç | Alt+ 0199 | Ç ; | Ç ; | C cédille majuscule |
| È | Alt+ 0200 | È ; | È ; | E accent grave majuscule |
| É | Alt+ 0201 | É ; | É ; | E accent aigu majuscule |
| Ê | Alt+ 0202 | Ê ; | Ê ; | E accent circonflexe majuscule |
| Ë | Alt+ 0203 | Ë ; | Ë ; | E tréma majuscule |
| Ì | Alt+ 0204 | Ì ; | Ì ; | I accent grave majuscule |
| Í | Alt+ 0205 | Í ; | Í ; | I accent aigu majuscule |
| Î | Alt+ 0206 | Î ; | Î ; | I accent circonflexe majuscule |
| Ï | Alt+ 0207 | Ï ; | Ï ; | I tréma majuscule |
| Ð | Alt+ 0208 | Ð ; | Ð ; | Eth islandais |
| Ñ | Alt+ 0209 | Ñ ; | Ñ ; | N tilde majuscule |
| Ò | Alt+ 0210 | Ò ; | Ò ; | O accent grave majuscule |
| Ó | Alt+ 0211 | Ó ; | Ó ; | O accent aigu majuscule |
| Ô | Alt+ 0212 | Ô ; | Ô ; | O accent circonflexe majuscule |
| Õ | Alt+ 0213 | Õ ; | Õ ; | O tilde majuscule |
| Ö | Alt+ 0214 | Ö ; | Ö ; | O tréma majuscule |
| × | Alt+ 0215 | × ; | × ; | Signe de multiplication |
| Ø | Alt+ 0216 | Ø ; | Ø ; | O barré majuscule |
| Ù | Alt+ 0217 | Ù ; | Ù ; | U accent grave majuscule |
| Ú | Alt+ 0218 | Ú ; | Ú ; | U accent aigu majuscule |
| Û | Alt+ 0219 | Û ; | Û ; | U accent circonflexe majuscule |
| Ü | Alt+ 0220 | Ü ; | Ü ; | U tréma majuscule |
| Ý | Alt+ 0221 | Ý ; | Ý ; | Y accent aigu majuscule |
| Þ | Alt+ 0222 | Þ ; | Þ ; | Thorn islandais majuscule |
| ß | Alt+ 0223 | ß ; | ß ; | s dur allemand (szet) |
| à | Alt+ 0224 | à ; | à ; | a accent grave minuscule |
| á | Alt+ 0225 | á ; | á ; | a accent aigu minuscule |
| â | Alt+ 0226 | â ; | â ; | a accent circonflexe minuscule |
| ã | Alt+ 0227 | ã ; | ã ; | a tilde minuscule |
| ä | Alt+ 0228 | ä ; | ä ; | a tréma minuscule |
| å | Alt+ 0229 | å ; | å ; | a rond minuscule |
| æ | Alt+ 0230 | æ ; | æ ; | e dans l'a minuscule |
| ç | Alt+ 0231 | ç ; | ç ; | c cédille minuscule |
| è | Alt+ 0232 | è ; | è ; | e accent grave minuscule |
| é | Alt+ 0233 | é ; | é ; | e accent aigu minuscule |
| ê | Alt+ 0234 | ê ; | ê ; | e accent circonflexe minuscule |
| ë | Alt+ 0235 | ë ; | ë ; | e tréma minuscule |
| ì | Alt+ 0236 | ì ; | ì ; | i accent grave minuscule |
| í | Alt+ 0237 | í ; | í ; | i accent aigu minuscule |
| î | Alt+ 0238 | î ; | î ; | i accent circonflexe minuscule |
| ï | Alt+ 0239 | ï ; | ï ; | i tréma minuscule |
| ð | Alt+ 0240 | ð ; | ð ; | eth islandais minuscule |
| ñ | Alt+ 0241 | ñ ; | ñ ; | n tilde minuscule |
| ò | Alt+ 0242 | ò ; | ò ; | o accent grave minuscule |
| ó | Alt+ 0243 | ó ; | ó ; | o accent aigu minuscule |
| ô | Alt+ 0244 | ô ; | ô ; | o accent circonflexe minuscule |
| õ | Alt+ 0245 | õ ; | õ ; | o tilde minuscule |
| ö | Alt+ 0246 | ö ; | ö ; | o tréma minuscule |
| ÷ | Alt+ 0247 | ÷ ; | ÷ ; | Signe division |
| ø | Alt+ 0248 | ø ; | ø ; | o barré minuscule |
| ù | Alt+ 0249 | ù ; | ù ; | u accent grave minuscule |
| ú | Alt+ 0250 | ú ; | ú ; | u accent aigu minuscule |
| û | Alt+ 0251 | û ; | û ; | u accent circonflexe minuscule |
| ü | Alt+ 0252 | ü ; | ü ; | u tréma minuscule |
| ý | Alt+ 0253 | ý ; | ý ; | y accent aigu minuscule |
| þ | Alt+ 0254 | þ ; | þ ; | Thorn islandais minuscule |
| ÿ | Alt+ 0255 | ÿ ; | ÿ ; | y tréma minuscule |
| ℗ | ℗ ; | Copyright des enregistrements sonores | ||
| « point d’exclamation » | Alt+ 033 | ! ; | Point d’exclamation | |
| " | Alt+ 034 | " ; | " ; | Guillemet double |
| # | Alt+ 035 | # ; | # (carré ou dièse) | |
| $ | Alt+ 036 | $ ; | symbole Dollar | |
| % | Alt+ 037 | % ; | ||
| & ; | Alt+ 038 | & ; | & ; | Et commercial |
| ' | Alt+ 039 | ' ; | Apostrophe droite (guillemet simple ASCII) | |
| ( | Alt+ 040 | ( ; | ||
| ) | Alt+ 041 | ) ; | ||
| * | Alt+ 042 | * ; | ||
| + | Alt+ 043 | + ; | ||
| , | Alt+ 044 | , ; | Virgule | |
| - | Alt+ 045 | - ; | ||
| . | Alt+ 046 | . ; | ||
| / | Alt+ 047 | / ; | / (barre oblique) ou "slash" | |
| 0 | Alt+ 048 | 0 ; | ||
| 1 | Alt+ 049 | 1 ; | ||
| 2 | Alt+ 050 | 2 ; | ||
| 3 | Alt+ 051 | 3 ; | ||
| 4 | Alt+ 052 | 4 ; | ||
| 5 | Alt+ 053 | 5 ; | ||
| 6 | Alt+ 054 | 6 ; | ||
| 7 | Alt+ 055 | 7 ; | ||
| 8 | Alt+ 056 | 8 ; | ||
| 9 | Alt+ 057 | 9 ; | ||
| : | Alt+ 058 | : ; | Deux points | |
| ; | Alt+ 059 | ; ; | Point-virgule | |
| < ; | Alt+ 060 | < ; | < ; | Signe "inférieur à" |
| = | Alt+ 061 | = ; | Signe "égal" | |
| > ; | Alt+ 062 | > ; | > ; | Supérieur à |
| ? | Alt+ 063 | ? ; | Point d'interrogation | |
| @ | Alt+ 064 | @ ; | "a" commercial ou "arobase" | |
| A | Alt+ 065 | A ; | ||
| B | Alt+ 066 | B ; | ||
| C | Alt+ 067 | C ; | ||
| D | Alt+ 068 | D ; | ||
| E | Alt+ 069 | E ; | ||
| F | Alt+ 070 | F ; | ||
| G | Alt+ 071 | G ; | ||
| H | Alt+ 072 | H ; | ||
| I | Alt+ 073 | I ; | ||
| J | Alt+ 074 | J ; | ||
| K | Alt+ 075 | K ; | ||
| L | Alt+ 076 | L ; | ||
| M | Alt+ 077 | M ; | ||
| N | Alt+ 078 | N ; | ||
| O | Alt+ 079 | O ; | ||
| P | Alt+ 080 | P ; | ||
| Q | Alt+ 081 | Q ; | ||
| R | Alt+ 082 | R ; | ||
| S | Alt+ 083 | S ; | ||
| T | Alt+ 084 | T ; | ||
| U | Alt+ 085 | U ; | ||
| V | Alt+ 086 | V ; | ||
| W | Alt+ 087 | W ; | ||
| X | Alt+ 088 | X ; | ||
| Y | Alt+ 089 | Y ; | ||
| Z | Alt+ 090 | Z ; | ||
| [ | Alt+ 091 | [ ; | Crochet fermant | |
| \ | Alt+ 092 | \ ; | \ (barre oblique inversée) ou "anti-slash" | |
| ] | Alt+ 093 | ] ; | Crochet fermant | |
| ^ | Alt+ 094 | ^ ; | Accent circonflexe | |
| _ | Alt+ 095 | _ ; | Tiret (signe "moins") | |
| ` | Alt+ 096 | ` ; | ||
| a | Alt+ 097 | a ; | ||
| b | Alt+ 098 | b ; | ||
| c | Alt+ 099 | c ; | ||
| d | Alt+ 100 | d ; | ||
| e | Alt+ 101 | e ; | ||
| f | Alt+ 102 | f ; | ||
| g | Alt+ 103 | g ; | ||
| h | Alt+ 104 | h ; | ||
| i | Alt+ 105 | i ; | ||
| j | Alt+ 106 | j ; | ||
| k | Alt+ 107 | k ; | ||
| l | Alt+ 108 | l ; | ||
| m | Alt+ 109 | m ; | ||
| n | Alt+ 110 | n ; | ||
| o | Alt+ 111 | o ; | ||
| p | Alt+ 112 | p ; | ||
| q | Alt+ 113 | q ; | ||
| r | Alt+ 114 | r ; | ||
| s | Alt+ 115 | s ; | ||
| t | Alt+ 116 | t ; | ||
| u | Alt+ 117 | u ; | ||
| v | Alt+ 118 | v ; | ||
| w | Alt+ 119 | w ; | ||
| x | Alt+ 120 | x ; | ||
| y | Alt+ 121 | y ; | ||
| z | Alt+ 122 | z ; | ||
| { | Alt+ 123 | { ; | Parenthèse ouvrante | |
| | | Alt+ 124 | | ; | Barre droite | |
| } | Alt+ 125 | } ; | Parenthèse fermante | |
| ~ | Alt+ 126 | ~ ; | ~ (tilde) | |
| | Alt+ 0127 | |||
| € | Alt+ 0128 | € ; ou € ; | &euro ; | Symbole Euro |
| | Alt+ 0129 | |||
| ‚ | Alt+ 0130 | ‚ ; | &sbquo ; | Guillemet simple bas |
| ƒ | Alt+ 0131 | ƒ ; | ||
| „ | Alt+ 0132 | „ ; | &bdquo ; | Guillemet bas ouvrant |
| … | Alt+ 0133 | … ; | Trois petits points | |
| † | Alt+ 0134 | † ; | Signe de croix | |
| ‡ | Alt+ 0135 | ‡ ; | ||
| ˆ | Alt+ 0136 | ˆ ; | ||
| ‰ | Alt+ 0137 | ‰ ; | ||
| Š | Alt+ 0138 | Š ; | ||
| ‹ | Alt+ 0139 | ‹ ; | &lsaquo ; | Guillemet simple chevron gauche |
| Œ | Alt+ 0140 | Œ ; | ||
| Ž | Alt+ 0142 | Ž ; | &Zcaron ; | Z caron majuscule |
| | Alt+ 0143 | |||
| | Alt+ 0144 | |||
| ‘ | Alt+ 0145 | ‘ ; | &lsquo ; | Guillemet simple ouvrant |
| ’ | Alt+ 0146 | ’ ; | &rsquo ; | Guillemet simple fermant, apostrophe typographique |
| “ | Alt+ 0147 | “ ; | &ldquo ; | Guillemet double ouvrant, forme anglaise |
| ” | Alt+ 0148 | ” ; | &rdquo ; | Guillemet double fermant, forme anglaise |
| • | Alt+ 0149 | • ; | ||
| « tiret demi-cadratin » | Alt+ 0150 | – ; | &ndash ; | Tiret demi-cadratin |
| « tiret cadratin » | Alt+ 0151 | — ; | &mdash ; | Tiret cadratin |
| ˜ | Alt+ 0152 | ˜ ; | ||
| ™ | Alt+ 0153 | ™ ; | &trade ; | Marque commerciale |
| š | Alt+ 0154 | š ; | ||
| › | Alt+ 0155 | › ; | &rsaquo ; | Guillemet simple chevron droit |
| œ | Alt+ 0156 | œ ; | &oelig ; | |
| Alt+ 0157 | ||||
| ž | Alt+ 0158 | ž ; |
Quand utiliser un code plutôt que le caractère lui-même
Pour du texte courant, écrire directement le caractère accentué ou spécial dans le fichier HTML fonctionne sans problème, à condition que la page déclare le bon encodage dans son en-tête et que l’éditeur de texte enregistre le fichier dans ce même encodage. Le recours aux codes garde son intérêt dans des cas précis : afficher un caractère réservé par le langage HTML lui-même, comme le chevron ou l’esperluette, dans un contexte où il serait sinon interprété comme une balise ; ou garantir l’affichage correct d’un symbole rare sur un site dont l’encodage reste incertain.
Les pièges les plus fréquents
Le symbole « & » doit toujours être remplacé par son code d’échappement dès qu’il apparaît dans du texte ou dans un attribut : laissé tel quel, le navigateur tente d’interpréter ce qui suit comme le début d’une entité, avec des résultats imprévisibles. Le chevron ouvrant pose le même type de souci, puisque le navigateur l’interprète comme le début d’une balise. Un texte copié depuis un traitement de texte amène aussi son lot de soucis : les guillemets courbes, les tirets longs et les espaces insécables d’un logiciel de bureautique ne correspondent pas toujours à l’encodage attendu par la page une fois collés tels quels.
À l’inverse, un site qui déclare l’UTF-8 dans son en-tête n’a besoin d’aucune de ces entités pour le texte courant : les lettres accentuées, les guillemets français et les symboles monétaires s’écrivent directement, sans passer par un code. Réserver les entités aux caractères réellement problématiques rend le code source plus simple à relire et à corriger.
Résumer cet article avec :
Partager :
