ASCII : comprendre le codage des caractères
Auteur : Rédaction Domeny.ForSale Publié le
En bref : ASCII est une norme qui attribue aux 128 caractères des nombres de 0 à 127, permettant ainsi de stocker et de transmettre du texte sous forme de données. Elle comprend notamment les lettres de l’alphabet anglais, les chiffres, les signes de ponctuation et les codes de contrôle, mais pas les lettres polonaises comme « ą » ou « ł ». Les textes actuels sont généralement enregistrés en UTF-8, qui reste compatible avec ASCII pour ces 128 premiers caractères.
Comment fonctionne ASCII et que signifie son nom ?
ASCII est l’abréviation de American Standard Code for Information Interchange, soit « code américain normalisé pour l’échange d’informations ». Il s’agit d’un encodage de caractères : une règle définie qui associe des caractères à des valeurs numériques. L’ordinateur stocke ces nombres sous forme de bits, et le programme qui lit le texte les interprète selon l’encodage choisi.
ASCII est un encodage sur 7 bits. Sept bits permettent de représenter 128 valeurs différentes, de 0 à 127. Dans les fichiers, chaque caractère ASCII occupe généralement un octet, soit huit bits, dont le bit de poids fort vaut zéro.
Par exemple, la lettre majuscule A correspond au nombre décimal 65, qui s’écrit 41 en hexadécimal et 01000001 en binaire sur un octet. Ce sont trois façons de représenter la même valeur, et non trois codes de caractère différents. La notation 0x41, utilisée dans la documentation et en programmation, désigne précisément cette valeur hexadécimale.
Quels caractères contient la table ASCII ?
ASCII comprend 95 caractères imprimables, espace compris. Les 33 positions restantes sont des codes de contrôle, qui ne représentent pas des symboles visibles ordinaires. Ils servent notamment à indiquer une tabulation ou une fin de ligne.
| Caractère ou fonction | Code décimal | Code hexadécimal |
|---|---|---|
| Tabulation (TAB) | 9 | 09 |
| Saut de ligne (LF) | 10 | 0A |
| Retour chariot (CR) | 13 | 0D |
| Espace | 32 | 20 |
Chiffre 0 | 48 | 30 |
Lettre majuscule A | 65 | 41 |
Lettre minuscule a | 97 | 61 |
| Suppression (DEL) | 127 | 7F |
Un chiffre en tant que caractère n’est pas la même chose qu’un nombre. Le texte 123 se compose de trois caractères dont les codes ASCII sont 49, 50 et 51. Pour effectuer des calculs à partir de ce texte, un programme doit l’interpréter comme un nombre.
Les majuscules et les minuscules ont des codes distincts : A et a sont donc deux caractères différents. De même, un espace n’est pas une « absence de données » : il possède son propre code et occupe de la place dans le fichier.
Les codes CR et LF expliquent certaines différences entre les fichiers texte. Dans les systèmes de type Unix, la fin de ligne est généralement indiquée par LF, tandis que dans Windows, elle est représentée par la paire CRLF. Des documents peuvent donc sembler identiques dans un éditeur tout en contenant des séquences d’octets différentes en fin de ligne.
ASCII, Unicode et UTF-8 : quelles différences ?
ASCII ne comprend ni les lettres polonaises avec signes diacritiques, ni l’alphabet grec, ni l’alphabet cyrillique, ni les emoji. Pour gérer les textes dans de nombreuses langues, on utilise Unicode : cette norme attribue aux caractères et à d’autres éléments du texte des nombres appelés points de code. UTF-8 est une manière de représenter ces points de code sous forme de séquences d’octets.
Unicode et UTF-8 ne sont pas synonymes. Unicode définit notamment le numéro attribué à un caractère, tandis que UTF-8 définit la façon de représenter ce numéro dans les données. ASCII associe un petit ensemble de caractères à un encodage numérique simple.
Les 128 premiers points de code Unicode correspondent à ASCII. En UTF-8, chacun de ces caractères est représenté par exactement le même octet unique qu’en ASCII. Un fichier contenant uniquement du texte ASCII valide est donc aussi un fichier UTF-8 valide.
On peut illustrer cette différence avec le mot polonais kot (« chat ») : il occupe trois octets aussi bien en ASCII qu’en UTF-8. En revanche, le mot polonais żółw (« tortue ») ne peut pas être représenté uniquement en ASCII. En UTF-8, il occupe sept octets : deux pour chacune des lettres ż, ó et ł, et un pour w.
Pourquoi l’expression « ASCII étendu » peut prêter à confusion
L’expression « ASCII étendu » ne désigne pas un encodage universel unique. Elle est parfois employée pour différents encodages sur 8 bits qui conservent la plage ASCII et utilisent les valeurs supplémentaires de 128 à 255. Parmi eux figurent notamment Windows-1250 et ISO-8859-2, utilisés pour les textes d’Europe centrale.
Un même octet supplémentaire peut représenter un caractère différent selon l’encodage. Si un programme lit un fichier avec le mauvais encodage, des symboles incorrects peuvent apparaître à la place des lettres polonaises. En polonais, on les appelle familièrement « krzaki », littéralement « buissons », pour évoquer ces caractères illisibles. La seule indication « fichier ASCII » ne suffit donc pas à décrire un document contenant des caractères qui ne font pas partie du jeu de base.
Quand ASCII est-il utile en pratique ?
ASCII apparaît encore dans la documentation des protocoles, dans les formats de fichiers et dans les restrictions des champs de formulaire. Le message « seuls les caractères ASCII sont autorisés » exclut notamment les lettres polonaises, les guillemets typographiques et les tirets longs. Cela ne signifie toutefois pas automatiquement que le champ accepte tous les caractères ASCII : les règles d’utilisation ou le mécanisme de validation peuvent n’autoriser que les lettres et les chiffres.
Si un fichier importé affiche des caractères incorrects, suivez cette courte procédure :
- Conservez une copie de l’original avant d’enregistrer des modifications.
- Vérifiez l’encodage indiqué par la source du fichier, par exemple dans les paramètres d’exportation.
- Ouvrez le fichier dans un éditeur avec cet encodage et vérifiez les lettres polonaises.
- Ce n’est qu’une fois le fichier correctement lu que vous pourrez en enregistrer une copie en UTF-8, si le système de destination prend cet encodage en charge.
Pour un nouveau document contenant du texte polonais, choisissez UTF-8, sauf si le destinataire exige un autre format. Si l’on vous demande du « ASCII », faites également préciser la liste exacte des caractères autorisés : vous éviterez ainsi que vos données soient rejetées malgré un encodage correct.
Voir aussi : Qu’est-ce que l’AGI ?
