< Les ASCII de 0 à 127


Les 94-95 caractères ASCII affichables :
 !"#$%&'()*+,-./
0123456789:;<=>?
@ABCDEFGHIJKLMNO
PQRSTUVWXYZ[\]^_
`abcdefghijklmno
pqrstuvwxyz{!}~

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

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:

$ ! &  # ' ( ) " / : ; ? , . 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

En plus des caractères hérités de Baudit, les caractères invriants de l'ISO-646 apporte les caractères suivants:

< > _


A 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 Car. Nom
binaire déc. hexa.
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 Car. Nom
binaire déc. hexa.
011 0000 48 30 0chiffre zéro
011 0001 49 31 1chiffre un
011 0010 50 32 2chiffre deux
011 0011 51 33 3chiffre trois
011 0100 52 34 4chiffre quatre
011 0101 53 35 5chiffre cinq
011 0110 54 36 6chiffre six
011 0111 55 37 7chiffre sept
011 1000 56 38 8chiffre huit
011 1001 57 39 9chiffre 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 Car. Nom
binaire déc. hexa.
 
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 Caractères pour chaque jeu compatible ISO 646
binairedé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èreUnicodeNom CaractèreUnicodeNom
0x22
"
U+0022guillemet anglais
ö
U+0308diacritique tréma (ou diérèse ou umlaut)
0x27
´
U+00B4accent aigu
ó
U+0301diacritique accent aigu (ou oxeia en grec)
0x2C
,
U+002Cvirgule
o̦
U+0326diacritique virgule souscrite (en roumain)
o̧
U+0327diacritique cédille (sauf en en roumain)
0x2D
-
U+002Dtiret-moins
o̵
U+0335diacritique barre courte couvrante
0x2F
/
U+002Fbarre oblique
o̷
U+0337diacritique barre oblique courte couvrante (avec une minuscule)
o̸
U+0338diacritique barre oblique longue couvrante (avec une majuscule)
0x5B
°
U+00B0symbole degré
o̊
U+030Adiacritique rond en chef
0x5E
^
U+02C6lettre modificative accent circonflexe (avec chasse)
ô
U+0302diacritique accent circonflexe
0x5F
_
U+005Ftiret bas
o̱
U+0331diacritique macron souscrit
0x60
`
U+0060accent grave (avec chasse)
ò
U+0300diacritique accent grave
0x7B
°
U+00B0symbole degré
o̊
U+030Adiacritique rond en chef
´
U+00B4accent aigu
ó
U+0301diacritique accent aigu (ou oxeia en grec)
0x7E
¨
U+00A8tréma (avec chasse)
ö
U+0308diacritique tréma (ou diérèse ou umlaut)
°
U+00B0symbole degré
o̊
U+030Adiacritique rond en chef
ˉ
U+02C9lettre modificative macron (avec chasse)
ō
U+0304diacritique macron
˜
U+02DCpetit tilde (avec chasse)
õ
U+0303diacritique tilde
˝
U+02DDdouble accent aigu (avec chasse)
ő
U+030Bdiacritique 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 »

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. C'est également pour cette raison 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

  1. voir Les ASCII de 0 à 127/La table ASCII
Cet article est issu de Wikibooks. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.