Les codages ASCII, ISO-8859-1, Windows-1252 et MacRoman

Astuce par (Lyon, France)
Créé le , mis à jour le (81446 lectures)
Tags : xhtml, utf8, encodage, internationalisation, ascii, ansi

Vous avez surement déjà croisé certaines des appellations suivantes: ASCII, ANSI, Latin1, ISO-8859-1, MacRoman, Windows-1252, etc. Elles désignent toutes des codages de caractères (on utilise aussi l’anglicisme «encodage», transcription de l’anglais encoding).

Lorsqu’on réalise un site web, il est important de savoir dans quel codage est enregistré un document (une page HTML par exemple), afin de pouvoir annoncer ce codage aux navigateurs web qui afficheront les bons caractères à l'écran, et de pouvoir conserver le bon codage lorsqu’on modifie le fichier.

Caractères

Le problème avec les codages cités, c’est qu’on ne sait pas toujours à quoi ils correspondent, et qu’on utilise parfois un nom à la place d’un autre! Les confusions sont fréquentes, jusqu’à certains éditeurs de code qui utilisent des noms inexacts…

Les codages ASCII et fils

ASCII (Wikipedia: ASCII)

ASCII est un standard américain. C’est un codage qui contient 128 caractères, soit pas des masses. En gros, ça sert à écrire l’anglo-américain, mais ça ne permet pas d’écrire les langues européennes qui utilisent des lettres avec diacritiques (accents, cédille, autres joyeusetés). Bref, on ne peut pas écrire en français avec de l’ASCII. On évitera d’utiliser ce codage sur un site francophone moderne.

Les 128 caractères d’ASCII restent cependant la base d’une partie des codages modernes, créés comme des extensions d’ASCII et compatibles avec celui-ci.

ISO-8859-1 ou Latin-1 (Wikipedia: ISO 8859-1)

Le nom officiel de ce codage est ISO-8859-1, mais l’appelation «Latin-1» ou «latin1» est fréquente. Il s’agit d’une extension d’ASCII qui comporte 191 caractères imprimables. Elle permet d’écrire la plupart des langues d’Europe de l’Ouest. Presque tous les caractères du français y sont (manque le œ).

ISO-8859-15 ou Latin-9 (Wikipedia: ISO 8859-15)

Cette norme modifie légèrement ISO-8859-1. Pour le français, on notera surtout l’ajout du caractère œ et du symbole monétaire (Euro).

Windows-1252 ou CP1252 (Wikipedia: Windows-1252)

C’est une extension d’ISO-8859-1, qui rajoute un certain nombre de caractères: œ, , mais aussi guillemets anglais, points de suspension, signe «pour mille» (), tirets cadratin et demi-cadratin, etc. En tout, cela représente 218 caractères imprimables.
Windows-1252 est parfois appelé «ANSI», du nom de l’organisme américain de standardisation (qui a publié entre autre le standard ASCII!), mais ce codage n’a jamais été un standard de l’ANSI. Ce nom est donc abusif. Sachez juste que si un logiciel parle de codage «ANSI», il parle sans doute de Windows-1252.

Une autre extension d’ASCII, qui couvre la plupart des caractères existant dans ISO-8859-1 mais sans être tout à fait compatible. Si vous travaillez sous Mac OS ou recevez des fichiers de quelqu’un travaillant sous Mac OS, il se peut que le texte soit enregistré en MacRoman.

Quel codage choisir?

Le plus simple est d’utiliser le codage UTF-8, en particulier pour la création d’un nouveau site web. Les codages que nous venons de passer en revue donnent accès à un jeu très limité de caractères (jusqu’à 218 pour le plus riche). À l’inverse, UTF-8 est un codage de la famille Unicode, qui permet d’écrire n’importe quel caractère existant dans n’importe quelle langue ou presque. Ce codage «universel» rencontre un fort succès: depuis janvier 2010, plus de la moitié des pages sur le Web sont en UTF-8.

Si vous souhaitez un des codages que nous avons passés en revue, on préfèrera ISO-8859-1 ou ISO-8859-15. Pour les caractères n’existant pas dans ces deux codages, on pourra utiliser des entités HTML, par exemple — pour un tiret cadratin.

Sur le choix du codage, on peut aussi lire cet article: Charset Iso-8859-1, iso-8859-15, utf-8, lequel choisir ?