Centre d‘Information

ASCII et ANSI

ASCII est l’abréviation d’American Standard Code pour l’échange d’informations (American Standard Code for Information Interchange) et un codage de caractères à 7 bits. Il constitue la base de nombreux autres encodages de caractères. En ASCII, 128 caractères sont définis, dont 95 sont imprimables et 33 non imprimables. Le tableau suivant montre les caractères correspondants et leur notation décimale.

Table ASCII

Comme vous pouvez le constater, le jeu de caractères ASCII comprend les lettres latines, les dix chiffres arabes et des caractères de ponctuation et de contrôle. Les caractères diacritiques utilisés dans la plupart des langues basées sur l’alphabet latin, tels que Ä ou À, ne sont pas compris dans la plage ASCII. Pour afficher ces caractères, au moins 8 bits sont nécessaires pour disposer de suffisamment d’espace pour coder ces caractères.

ANSI

Pour cette raison, l’ANSI 8 bits est presque toujours utilisé à la place de l’ASCII 7 bits. Avec ANSI, 256 caractères différents peuvent être codés (8 bits correspond à 2 ^ 8 = 256 possibilités) au lieu de 128 caractères seulement (7 bits correspond à 2 ^ 7 = 128 possibilités de codage). ANSI signifie en réalité l’American National Standards Institute, mais en technologie informatique, il est utilisé presque exclusivement pour le groupe de jeux de caractères expliqué ci-après. ANSI est normalement compatible avec les 128 caractères ASCII et inclut également des caractères supplémentaires spécifiques à la langue, tels que Ä, À, ß, etc. Selon l’extension utilisée, 128 autres caractères différents sont utilisés comme extension.

Latin 1

L’extension ASCII la plus courante est indiquée dans le tableau suivant et s’appelle Latin 1 (ISO 8859-1).

Table Latin-1

Il existe également d’autres extensions telles que Latin 5 (ISO 8859-5, Turc), Latin 7 (ISO 8859-7 Celtique) ou Latin 10 (ISO 8859-10 d’Europe du Sud-Est). Même avec ces extensions, les 128 premiers caractères sont les caractères ASCII normaux. Viennent ensuite 128 caractères nécessaires à la langue appropriée ou au jeu de caractères correspondant.

Limites

Bien que l’encodage ANSI ne nécessite qu’un octet par caractère et qu’il soit donc le plus efficace de tous les encodages présentés, cette efficacité se fait aux dépens de la possibilité de combiner des caractères provenant de différents jeux de caractères ou de caractères spéciaux dans un fichier. Bien sûr, pour les textes en anglais, allemand, espagnol ou français pur, ANSI suffit (pour l’anglais même l’ASCII). Toutefois, dès que d’autres caractères, tels que des lettres cyrilliques ou des caractères spéciaux, apparaissent dans le texte, ANSI ne peut plus enregistrer ces caractères. De plus, le problème d’incompatibilité se produit lors de l’échange de fichiers, par exemple si l’expéditeur a enregistré un fichier en tant que Latin-1 et si le destinataire utilise Latin-10. Dans ce cas, les caractères en dehors de la plage ASCII de 128 caractères peuvent ne pas s’afficher correctement, car le même code signifie d’autres caractères en latin-1 et latin-10. Pour éviter ce danger, il est recommandé de sauvegarder les fichiers dans un format de code indépendant de la langue, comme les formats Unicode UTF-7, UTF-8, UTF-16 ou UTF-32. Dans ces codages, chaque caractère a un code unique qui ne diffère pas, il n’ya donc aucune possibilité d’afficher un caractère incorrect.

ANSI et ASCII n’ont pas de marque d’ordre d’octet (BOM). En fait, cela n’est pas nécessaire, car dans tous les cas, un seul octet par caractère est écrit et, par conséquent, l’endianité n’a donc aucune importance. Cependant, certains problèmes peuvent survenir, s’il n’ya pas d’étiquette si un fichier est au format ANSI, ASCII ou non, car même les codages tels que UTF-8 ne doivent pas nécessairement avoir une marque d’ordre d’octet. Par conséquent, un fichier approprié peut être un codage ANSI, ASCII, UTF-8 ou autre. Il est difficile d’interpréter ces fichiers si vous essayez de les afficher correctement.