# 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. 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

Il 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:
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

En 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

Les positions invariantes des jeux de caractères graphiques latins compatibles avec l’ISO 646 sont les suivantes :
| Codes | Codes | Codes | Car. | Nom |
| binaire | déc. | hexa. | Car. | Nom |
| 010 0000 | 32 | 20 | | espace |
| 010 0001 | 33 | 21 | ! | point d’exclamation |
| 010 0010 | 34 | 22 | " | guillemet anglais |
| 010 0101 | 37 | 25 | % | signe pourcent |
| 010 0110 | 38 | 26 | & | esperluette |
| 010 0111 | 39 | 27 | ' | apostrophe |
| 010 1000 | 40 | 28 | ( | parenthèse ouvrante |
| 010 1001 | 41 | 29 | ) | parenthèse fermante |
| 010 1010 | 42 | 2A | * | astérisque |
| 010 1011 | 43 | 2B | + | signe plus |
| 010 1100 | 44 | 2C | , | virgule |
| 010 1101 | 45 | 2D | - | trait d’union-signe moins |
| 010 1110 | 46 | 2E | . | point |
| 010 1111 | 47 | 2F | / | barre oblique |
| Codes | Codes | Codes | Car. | Nom |
| binaire | déc. | hexa. | Car. | Nom |
| 011 0000 | 48 | 30 | 0 | chiffre zéro |
| 011 0001 | 49 | 31 | 1 | chiffre un |
| 011 0010 | 50 | 32 | 2 | chiffre deux |
| 011 0011 | 51 | 33 | 3 | chiffre trois |
| 011 0100 | 52 | 34 | 4 | chiffre quatre |
| 011 0101 | 53 | 35 | 5 | chiffre cinq |
| 011 0110 | 54 | 36 | 6 | chiffre six |
| 011 0111 | 55 | 37 | 7 | chiffre sept |
| 011 1000 | 56 | 38 | 8 | chiffre huit |
| 011 1001 | 57 | 39 | 9 | chiffre neuf |
| 011 1010 | 58 | 3A | : | deux-points |
| 011 1011 | 59 | 3B | ; | point-virgule |
| 011 1100 | 60 | 3C | < | signe inférieur à |
| 011 1101 | 61 | 3D | = | signe égal à |
| 011 1110 | 62 | 3E | > | signe supérieur à |
| 011 1111 | 63 | 3F | ? | point d’interrogation |
| Codes | Codes | Codes | Car. | Nom |
| binaire | déc. | hexa. | Car. | Nom |
| 101 1111 | 95 | 5F | _ | tiret bas |

## Codes de caractères variants

Les 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 | Codes | Codes | Caractères pour chaque jeu compatible ISO 646 | Caractères pour chaque jeu compatible ISO 646 | Caractères pour chaque jeu compatible ISO 646 | Caractères pour chaque jeu compatible ISO 646 | Caractères pour chaque jeu compatible ISO 646 | Caractères pour chaque jeu compatible ISO 646 | Caractères pour chaque jeu compatible ISO 646 | Caractères pour chaque jeu compatible ISO 646 | Caractères pour chaque jeu compatible ISO 646 | Caractères pour chaque jeu compatible ISO 646 | Caractères pour chaque jeu compatible ISO 646 | Caractères pour chaque jeu compatible ISO 646 | Caractères pour chaque jeu compatible ISO 646 | Caractères pour chaque jeu compatible ISO 646 | Caractères pour chaque jeu compatible ISO 646 | Caractères pour chaque jeu compatible ISO 646 | Caractères pour chaque jeu compatible ISO 646 | Caractères pour chaque jeu compatible ISO 646 | Caractères pour chaque jeu compatible ISO 646 | Caractères pour chaque jeu compatible ISO 646 | Caractères pour chaque jeu compatible ISO 646 | Caractères pour chaque jeu compatible ISO 646 | Caractères pour chaque jeu compatible ISO 646 | Caractères pour chaque jeu compatible ISO 646 | Caractères pour chaque jeu compatible ISO 646 | Caractères pour chaque jeu compatible ISO 646 | Caractères pour chaque jeu compatible ISO 646 | Caractères pour chaque jeu compatible ISO 646 | 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 isolée | Interprétation isolée | Interprétation avec BS et un autre caractère (ici « o ») | Interprétation avec BS et un autre caractère (ici « o ») | 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 | ö | U+0308 | diacritique tréma (ou diérèse ou umlaut) |
| 0x27 | ´ | U+00B4 | accent aigu | ó | U+0301 | diacritique accent aigu (ou oxeia en grec) |
| 0x2C | , | U+002C | virgule | o̦ | U+0326 | diacritique virgule souscrite (en roumain) |
| 0x2C | , | U+002C | virgule | 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) |
| 0x2F | / | U+002F | barre oblique | 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) | ô | U+0302 | diacritique accent circonflexe |
| 0x5F | _ | U+005F | tiret bas | o̱ | U+0331 | diacritique macron souscrit |
| 0x60 | ` | U+0060 | accent grave (avec chasse) | ò | U+0300 | diacritique accent grave |
| 0x7B | ° | U+00B0 | symbole degré | o̊ | U+030A | diacritique rond en chef |
| 0x7B | ´ | U+00B4 | accent aigu | ó | U+0301 | diacritique accent aigu (ou oxeia en grec) |
| 0x7E | ¨ | U+00A8 | tréma (avec chasse) | ö | U+0308 | diacritique tréma (ou diérèse ou umlaut) |
| 0x7E | ° | U+00B0 | symbole degré | o̊ | U+030A | diacritique rond en chef |
| 0x7E | ˉ | U+02C9 | lettre modificative macron (avec chasse) | ō | U+0304 | diacritique macron |
| 0x7E | ˜ | U+02DC | petit tilde (avec chasse) | õ | U+0303 | diacritique tilde |
| 0x7E | ˝ | U+02DD | double accent aigu (avec chasse) | ő | U+030B | diacritique double accent aigu |

## Alphabet

Les 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 »
l'ordre de tri par défaut est
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.

## Notes de bas de page

* ↑ voir Les ASCII de 0 à 127/La table ASCII