Encodage - noelno/dovelei GitHub Wiki

Avant Internet les anglophones utilisaient l'encodage ASCII, où les lettres et caractères de base (points, sauts de lignes) étaient stockés sur 8 bits, de 32 à 127. Évidemment les autres pays n'utilisant pas ces caracteres en utilisaient d'autres, ce qui empêchait tout interopérabilité d'un PC anglophone à un PC russe par exemple.

Avec le standard ANSI, tout le monde s'est mis d'accord sur les 128 premiers caractères, et chaque pays s'est mis d'accord sur un standard fixé dans une feuille de code. L'interopérabilité était assurée entre les PC utilisant la même feuille de code, et les documents en anglais s'affichaient partout pareil.

A l'arrivée du net, l'interopérabilité se devait d'être globale. L'Unicode est un jeu de caractères qui a permis de classifier sur une unique feuille de code tous les caractères existants. Plusieurs encodages sont apparus pour stocker les points de code Unicode, dont l'encodage utf-8 qui avait pour avantage sa rétrocompatibilité avec l'ANSI, ce qui a facilité son adoption. Quand un caractère d'un autre encodage n'a pas d'équivalent Unicode, cela affiche un point d'interrogation.

En conclusion : tout texte a forcément un encodage, que le développeur se doit de connaître et le spécifier dans les entêtes de la page web ou dans le corps du mail pour éviter les problèmes d'affichage.

Source

Joel on Software - Le minimum absolu que tout développeur doit absolument, positivement savoir sur Unicode et les jeux de caractères (aucune excuse !)