Les ASCII de 0 à 127/Caractères graphiques
Alors que la plupart des présentations de l'ASCII se limitent à la table que nous avons vu dans un chapitre précédent[1]. Il nous a semblé juste d'en dire plus sur certains caractères, leurs origines, leur organisation, leurs intentions et leurs standardisation, notamment par rapport à l'ISO-646.
Les caractères ASCII affichables sont entre 94 et 95 suivant que l'espace soit compté, avec notamment:
⁃ 26 lettres minuscules
⁃ 26 lettres majuscules
⁃ 10 chiffres
⁃ 32 symboles
⁃ une espace sans représentation affichable ou affiché sans représentation.
L'héritage de l'alphabet n°2
modifierIl est difficile de ne pas voir qu'une grande partie des caractères graphiques est héritée de l'alphabet n°2. Ceci est vrai pour chacune des vingt-six lettres et de leur correspondance chiffrée c'est-à-dire chacun des dix chiffres, mais aussi pour une partie des symboles invariants de l'ISO-646.
Parmi les symboles hérités, nous pouvons voir:
$ ! & # ' ( ) " / : ; ? , . espace
Ces quinze symboles se retrouvent avec les dix chiffres dans le bloc 0x20-0x3f. La cloche (bell) n'étant pas un caractère graphique n'a pas été reprise dans ce bloc.
Il reprend aussi des symboles de la variante British Post Office du code Baudot, notamment:
= % £ / +
Apport et inventions de l'ISO-646 et de l'ASCII
modifierEn plus des caractères hérités de Baudit, les caractères invariants de l'ISO-646 apporte les caractères suivants:
< > _
À ces caractères invariants de l'ISO-646, le code Baudot apporte les caractères suivants:
@ [ \ ] ^ ` { | } ~
Si l'origine de ces caractères peut sembler mystérieuse, on peut néanmoins noter quelques propriétés:
^ ` ~
étaient conçu pour pouvoir servir d'accent, tout comme
' " ,
Les caractères ^ et _ pouvaient servir de flèches.
Les caractères [ ] { } ont sans doute été introduits pour limiter de blocs? Ce qui est sur est que leur standardisation a été introduite par le langage C.
Mais qui seraient dire pourquoi ont été ajoutés les caractères @ | et antislash?
Caractères invariants
modifierLes positions invariantes des jeux de caractères graphiques latins compatibles avec l’ISO 646 sont les suivantes :
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Codes de caractères variants
modifierLes caractères affichés sur fond bleu ou jaune dans le tableau ci-dessous sont ceux recommandés, mais la variante ASCII (affichée sur fond blanc dans la même ligne, notamment dans la colonne US) est souvent utilisée à la place (quand ils sont utilisés isolément). C’est le cas particulièrement pour les caractères dits invariants de l’ISO 646, c’est-à-dire les 26 lettres latines basiques (majuscules ou minuscules), les 10 chiffres arabo-européens et les 20 symboles ou ponctuations suivants:
! " % & ' ( ) * + , - . / : ; < = > ? _
qui ne sont pas modifiés dans les jeux de caractères totalement compatibles avec l’ISO 646 (mais peuvent avoir des variantes graphiques plus proches d’autres caractères considérés comme distincts dans ISO/IEC 10646 et Unicode). Ces caractères sont disposés de la même manière que sur les machines à écrire Remington.
Aussi, parmi les 94 positions graphiques de l’ISO 646 (codées de 33 à 126 en décimal), seules 12 positions sont dites variantes et correspondent aux caractères graphiques suivants de la variante américaine de l’ISO 646 (alias ASCII) :
# $ @ [ \ ] ^ ` { | } ~
Les changements spécifiques à certaines de ces variantes sont indiqués dans la table suivante avec un fond coloré jaune ou bleu quand le caractère assigné au code est différent de celui assigné dans l’ASCII (US) ; les cellules vides sur fond gris indiquent des positions invalides non utilisées dans le jeu de caractères normalisé correspondant :
Codes | Caractères pour chaque jeu compatible ISO 646 | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
binaire | déc. | hexa | INV | T.61 | JA-O | JA | KR | CN | US | IRV | GB | FR | FR-0 | CA-1 | CA-2 | ita | por | PT | DK | NO | NO-2 | SE | SE-C | DE | HU | IE | esp | ES | CU | MT | YU |
010 0010 | 34 | 22 | " | " | " | " | " | " | " | " | " | " | " | " | " | " | " | " | " | " | " | " | " | " | " | " | " | " | " | " | " |
010 0011 | 35 | 23 | # | # | # | # | # | # | # | £ | £ | £ | # | # | £ | # | £ | # | # | § | # | # | # | # | £ | # | # | # | # | # | |
010 0100 | 36 | 24 | ¤ | $ | $ | $ | ¥ | $ | $ | $ | $ | $ | $ | $ | $ | $ | $ | $ | $ | $ | ¤ | ¤ | $ | ¤ | $ | $ | $ | ¤ | $ | $ | |
010 1001 | 39 | 27 | ' | ' | ' | ' | ' | ' | ' | ’ | ’ | ’ | ’ | ’ | ’ | ’ | ’ | ’ | ’ | ’ | ’ | ’ | ’ | ’ | ’ | ’ | ’ | ’ | ’ | ’ | ’ |
010 1100 | 44 | 2C | , | , | , | , | , | , | , | , | , | , | , | , | , | , | , | , | , | , | , | , | , | , | , | , | , | , | , | , | , |
010 1101 | 45 | 2D | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
010 1111 | 47 | 2F | / | / | / | / | / | / | / | / | / | / | / | / | / | / | / | / | / | / | / | / | / | / | / | / | / | / | / | / | / |
100 0000 | 64 | 40 | @ | @ | @ | @ | @ | @ | @ | @ | à | à | à | à | § | § | ´ | @ | @ | @ | @ | É | § | Á | Ó | § | • | @ | @ | Ž | |
101 1011 | 91 | 5B | [ | [ | [ | [ | [ | [ | [ | [ | ° | ° | â | â | ° | Ã | Ã | Æ | Æ | Æ | Ä | Ä | Ä | É | É | ¡ | ¡ | ¡ | g | Š | |
101 1100 | 92 | 5C | ¥ | ¥ | ₩ | \ | \ | \ | \ | ç | ç | ç | ç | ç | Ç | Ç | Ø | Ø | Ø | Ö | Ö | Ö | Ö | Í | Ñ | Ñ | Ñ | z | Ð | ||
101 1101 | 93 | 5D | ] | ] | ] | ] | ] | ] | ] | ] | § | § | ê | ê | é | Õ | Õ | Å | Å | Å | Å | Å | Ü | Ü | Ú | ¿ | Ç | ] | h | C | |
101 1110 | 94 | 5E | ^ | ^ | ^ | ^ | ^ | ˆ | ˆ | ^ | ˆ | î | É | ˆ | ˆ | ˆ | ˆ | ˆ | ˆ | ˆ | Ü | ˆ | ˆ | Á | ˆ | ¿ | ¿ | ˆ | C | ||
101 1111 | 95 | 5F | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ |
110 0000 | 96 | 60 | ` | ` | ` | ` | ` | ` | µ | µ | ô | ô | ù | ` | ` | ` | ` | ` | ` | é | ` | á | ó | ` | ` | ` | c | ž | |||
111 1011 | 123 | 7B | { | { | { | { | { | { | { | é | é | é | é | à | ã | ã | æ | æ | æ | ä | ä | ä | é | é | ° | ´ | ´ | G | š | ||
111 1100 | 124 | 7C | | | | | | | | | | | | | | | | | ù | ù | ù | ù | ò | ç | ç | ø | ø | ø | ö | ö | ö | ö | í | ñ | ñ | ñ | Z | d | |
111 1101 | 125 | 7D | } | } | } | } | } | } | } | è | è | è | è | è | õ | õ | å | å | å | å | å | ü | ü | ú | ç | ç | [ | H | c | ||
111 1110 | 126 | 7E | ¯ | ¯ | ~ | ~ | ˜ | ˜ | ¨ | ¨ | û | û | ì | ° | ˜ | ˜ | ¯ | | | ˜ | ü | ß | ˝ | á | ˜ | ¨ | ¨ | C | c |
Les caractères affichés ci-dessus sur fond jaune doivent être interprétés comme des diacritiques combinants lorsqu’ils sont précédés ou suivis d’un caractère de contrôle retour arrière (BS, code 8). Ces diacritiques s’appliquent alors au caractère précédent si ces caractères réinterprétés sont précédés du contrôle retour arrière, sinon ils s’appliquent au caractère suivant comme s’ils étaient saisis comme touches mortes (et dans ce cas le transcodage vers Unicode nécessitera une inversion du caractère suivant et du diacritique) ; on peut aussi coder la combinaison du caractère de base et du diacritique avec un caractère Unicode précombiné (en forme normale C) correspondant à cette combinaison, si elle est codée dans Unicode. Dans ce cas, les ponctuations, symboles et lettres modificatives suivants sont réinterprétés ainsi :
ISO 646 | Interprétation isolée | Interprétation avec BS et un autre caractère (ici « o ») | ||||
---|---|---|---|---|---|---|
hexa | Caractère | Unicode | Nom | Caractère | Unicode | Nom |
0x22 | "
|
U+0022 | guillemet anglais | ö
|
U+0308 | diacritique tréma (ou diérèse ou umlaut) |
0x27 | ´
|
U+00B4 | accent aigu | ó
|
U+0301 | diacritique accent aigu (ou oxeia en grec) |
0x2C | ,
|
U+002C | virgule | o̦
|
U+0326 | diacritique virgule souscrite (en roumain) |
o̧
|
U+0327 | diacritique cédille (sauf en en roumain) | ||||
0x2D | -
|
U+002D | tiret-moins | o̵
|
U+0335 | diacritique barre courte couvrante |
0x2F | /
|
U+002F | barre oblique | o̷
|
U+0337 | diacritique barre oblique courte couvrante (avec une minuscule) |
o̸
|
U+0338 | diacritique barre oblique longue couvrante (avec une majuscule) | ||||
0x5B | °
|
U+00B0 | symbole degré | o̊
|
U+030A | diacritique rond en chef |
0x5E | ^
|
U+02C6 | lettre modificative accent circonflexe (avec chasse) | ô
|
U+0302 | diacritique accent circonflexe |
0x5F | _
|
U+005F | tiret bas | o̱
|
U+0331 | diacritique macron souscrit |
0x60 | `
|
U+0060 | accent grave (avec chasse) | ò
|
U+0300 | diacritique accent grave |
0x7B | °
|
U+00B0 | symbole degré | o̊
|
U+030A | diacritique rond en chef |
´
|
U+00B4 | accent aigu | ó
|
U+0301 | diacritique accent aigu (ou oxeia en grec) | |
0x7E | ¨
|
U+00A8 | tréma (avec chasse) | ö
|
U+0308 | diacritique tréma (ou diérèse ou umlaut) |
°
|
U+00B0 | symbole degré | o̊
|
U+030A | diacritique rond en chef | |
ˉ
|
U+02C9 | lettre modificative macron (avec chasse) | ō
|
U+0304 | diacritique macron | |
˜
|
U+02DC | petit tilde (avec chasse) | õ
|
U+0303 | diacritique tilde | |
˝
|
U+02DD | double accent aigu (avec chasse) | ő
|
U+030B | diacritique double accent aigu |
Alphabet
modifierLes caractères alphabétiques sont dotés d'un jeu majuscule et d'un jeu minuscule, alignés sur 32, de telle manière qu'il suffit de changer un seul bit pour passer d'une casse à l'autre. Les caractère situés entre chaque jeu sont similaires de sorte que si on devait également changer leur bit de casse, l'aspect du texte reste globalement le même quelle que soit la casse.
Pour faciliter le tri, les caractères sont disposés dans l'ordre alphabétique et l'espace ainsi que les signes de ponctuation sont situés en amont, et l'espace est situé avant tous les autres caractères. De la sorte si il fallait trier ces lignes de texte dans l'ordre « ASCIIbétique »
JOHNSON JOHN,S JOHN
l'ordre de tri par défaut est
JOHN JOHN,S JOHNSON
ce qui est généralement l'ordre voulu.
À l'origine l'assignation de caractères était soumis à des soucis de collation, surtout dans les versions internationales, mais cela a été abandonné assez rapidement. C'est pour cette raison notamment que l'arobase est situé juste avant le A car il était prévu qu'en France le caractère À soit présent à cette place.