American Standard Code for Information Interchange
« ASCII » redirige ici. Pour les autres significations, voir ASCII (homonymie). |
La norme ASCII [askiː] (American Standard Code for Information Interchange « Code américain normalisé pour l'échange d'information ») est la norme de codage de caractères en informatique la plus connue, la plus ancienne, et la plus largement compatible. C'est également la variante américaine du codage de caractères ISO/CEI 646. ASCII contient les caractères nécessaires pour écrire en anglais. Elle a été inventée par l'américain Bob Bemer en 1961. Elle est à la base de nombreuses autres normes comme ISO 8859-1 et Unicode qui l'étendent.
Sommaire |
[modifier] Principes
L'ASCII définit 128 caractères numérotés de 0 à 127 et codés en binaire de 0000000 à 1111111. Sept bits suffisent donc pour représenter un caractère codé en ASCII. Toutefois, les ordinateurs travaillant presque tous sur huit bits (un octet) depuis les années 1970, chaque caractère d'un texte en ASCII est stocké dans un octet dont le 8e bit est 0.
Les caractères de numéro 0 à 31 et le 127 ne sont pas affichables ; ils correspondent à des commandes de contrôle de terminal informatique. Le caractère numéro 32 est l'espace. Les autres caractères sont les chiffres arabes, les lettres latines majuscules et minuscules et quelques symboles de ponctuation.
[modifier] Extensions
De nombreuses normes de codage de caractères ont repris les codes ASCII, et défini d'autres caractères pour les codes supérieurs à 127. En particulier, beaucoup de pages de codes étendent l'ASCII en utilisant le 8e bit pour définir des caractères numérotés de 128 à 255. La norme ISO/CEI 8859 fournit des extensions pour diverses langues. Par exemple, l'ISO 8859-1, aussi appelée Latin-1, étend l'ASCII avec les caractères accentués utiles aux langues originaires d'Europe occidentale comme le français ou l'allemand.
Par abus de langage, on appelle souvent « ASCII » des normes qui étendent ASCII, mais qui ne sont pas compatibles entre elles. En particulier, les standards Windows-1252 (couramment utilisé sur Microsoft Windows dans les pays occidentaux), ISO 8859-1 (couramment utilisé sur Internet et UNIX) et la page de code 850 (couramment utilisée sur DOS) ne sont pas la norme ASCII. Cet abus de langage ne va pas sans causer des confusions causant des incompatibilités, souvent rendues visibles par le fait que les caractères non ASCII comme les « lettres accentuées » (éÈç) s'affichent mal. On écrit parfois ASCII de base pour bien identifier ASCII, et pas un standard plus étendu.
Afin d'unifier les différents codages de caractères complétant l'ASCII et y intégrer les codages complètement différents (le JIS pour le japonais par exemple), la norme Unicode a été inventée. Unicode définit des dizaines de milliers de codes, mais les 128 premiers restent compatibles avec ASCII.
Parmi les nombreuses extensions 8 bits de l'ASCII, le Multinational Character Set créé par Digital Equipment Corporation pour le terminal informatique VT220 est considéré comme à la fois l'ancêtre de l'ISO 8859-1 et de l'Unicode[1].
[modifier] Table des 128 caractères ASCII
Dans cette table, les 33 caractères de contrôle (codes 0 à 31 et 127) sont présentés avec leur nom en anglais suivi d'une traduction entre parenthèses.
Code en base | Caractère | Signification | |||
---|---|---|---|---|---|
10 | 8 | 16 | 2 | ||
0 | 0 | 00 | 0000000 | NUL | Null (nul) |
1 | 01 | 01 | 0000001 | SOH | Start of Header (début d'en-tête) |
2 | 02 | 02 | 0000010 | STX | Start of Text (début du texte) |
3 | 03 | 03 | 0000011 | ETX | End of Text (fin du texte) |
4 | 04 | 04 | 0000100 | EOT | End of Transmission (fin de transmission) |
5 | 05 | 05 | 0000101 | ENQ | Enquiry (demande) |
6 | 06 | 06 | 0000110 | ACK | Acknowledge (accusé de réception) |
7 | 07 | 07 | 0000111 | BEL | Bell (caractère d'appel) |
8 | 010 | 08 | 0001000 | BS | Backspace (espacement arrière) |
9 | 011 | 09 | 0001001 | HT | Horizontal Tab (tabulation horizontale) |
10 | 012 | 0A | 0001010 | LF | Line Feed (saut de ligne) |
11 | 013 | 0B | 0001011 | VT | Vertical Tab (tabulation verticale) |
12 | 014 | 0C | 0001100 | FF | Form Feed (saut de page) |
13 | 015 | 0D | 0001101 | CR | Carriage Return (retour chariot) |
14 | 016 | 0E | 0001110 | SO | Shift Out (fin d'extension) |
15 | 017 | 0F | 0001111 | SI | Shift In (démarrage d'extension) |
16 | 020 | 10 | 0010000 | DLE | Data Link Escape |
17 | 021 | 11 | 0010001 | DC1 | Device Control 1 à 4 (DC1 et DC3 sont généralement utilisés pour coder XON et XOFF dans un canal de communication duplex) |
18 | 022 | 12 | 0010010 | DC2 | |
19 | 023 | 13 | 0010011 | DC3 | |
20 | 024 | 14 | 0010100 | DC4 | |
21 | 025 | 15 | 0010101 | NAK | Negative Acknowledge (accusé de réception négatif) |
22 | 026 | 16 | 0010110 | SYN | Synchronous Idle |
23 | 027 | 17 | 0010111 | ETB | End of Transmission Block (fin du bloc de transmission) |
24 | 030 | 18 | 0011000 | CAN | Cancel (annulation) |
25 | 031 | 19 | 0011001 | EM | End of Medium (fin de support) |
26 | 032 | 1A | 0011010 | SUB | Substitute (substitution) |
27 | 033 | 1B | 0011011 | ESC | Escape (échappement) |
28 | 034 | 1C | 0011100 | FS | File Separator (séparateur de fichier) |
29 | 035 | 1D | 0011101 | GS | Group Separator (séparateur de groupe) |
30 | 036 | 1E | 0011110 | RS | Record Separator (séparateur d'enregistrement) |
31 | 037 | 1F | 0011111 | US | Unit Separator (séparateur d'unité) |
32 | 040 | 20 | 0100000 | SP | Espace (Space en anglais) |
33 | 041 | 21 | 0100001 | ! | Point d'exclamation |
34 | 042 | 22 | 0100010 | " | Guillemet droit |
35 | 043 | 23 | 0100011 | # | Croisillon et parfois Dièse |
36 | 044 | 24 | 0100100 | $ | Dollar (symbole) |
37 | 045 | 25 | 0100101 | % | Pourcent |
38 | 046 | 26 | 0100110 | & | Esperluette |
39 | 047 | 27 | 0100111 | ' | Apostrophe (guillemet fermant simple ou accent aigu)[2] |
40 | 050 | 28 | 0101000 | ( | Parenthèse ouvrante |
41 | 051 | 29 | 0101001 | ) | Parenthèse fermante |
42 | 052 | 2A | 0101010 | * | Astérisque |
43 | 053 | 2B | 0101011 | + | Plus |
44 | 054 | 2C | 0101100 | , | Virgule |
45 | 055 | 2D | 0101101 | - | Moins |
46 | 056 | 2E | 0101110 | . | Point |
47 | 057 | 2F | 0101111 | / | Barre oblique (Slash en anglais) |
48 | 060 | 30 | 0110000 | 0 | Le chiffre zéro |
49 | 061 | 31 | 0110001 | 1 | Le chiffre un |
50 | 062 | 32 | 0110010 | 2 | Le chiffre deux |
51 | 063 | 33 | 0110011 | 3 | Le chiffre trois |
52 | 064 | 34 | 0110100 | 4 | Le chiffre quatre |
53 | 065 | 35 | 0110101 | 5 | Le chiffre cinq |
54 | 066 | 36 | 0110110 | 6 | Le chiffre six |
55 | 067 | 37 | 0110111 | 7 | Le chiffre sept |
56 | 070 | 38 | 0111000 | 8 | Le chiffre huit |
57 | 071 | 39 | 0111001 | 9 | Le chiffre neuf |
58 | 072 | 3A | 0111010 | : | Deux-points |
59 | 073 | 3B | 0111011 | ; | Point-virgule |
60 | 074 | 3C | 0111100 | < | Inférieur |
61 | 075 | 3D | 0111101 | = | Égal |
62 | 076 | 3E | 0111110 | > | Supérieur |
63 | 077 | 3F | 0111111 | ? | Point d'interrogation |
64 | 0100 | 40 | 1000000 | @ | Arrobe |
65 | 0101 | 41 | 1000001 | A | |
66 | 0102 | 42 | 1000010 | B | |
67 | 0103 | 43 | 1000011 | C | |
68 | 0104 | 44 | 1000100 | D | |
69 | 0105 | 45 | 1000101 | E | |
70 | 0106 | 46 | 1000110 | F | |
71 | 0107 | 47 | 1000111 | G | |
72 | 0110 | 48 | 1001000 | H | |
73 | 0111 | 49 | 1001001 | I | |
74 | 0112 | 4A | 1001010 | J | |
75 | 0113 | 4B | 1001011 | K | |
76 | 0114 | 4C | 1001100 | L | |
77 | 0115 | 4D | 1001101 | M | |
78 | 0116 | 4E | 1001110 | N | |
79 | 0117 | 4F | 1001111 | O | |
80 | 0120 | 50 | 1010000 | P | |
81 | 0121 | 51 | 1010001 | Q | |
82 | 0122 | 52 | 1010010 | R | |
83 | 0123 | 53 | 1010011 | S | |
84 | 0124 | 54 | 1010100 | T | |
85 | 0125 | 55 | 1010101 | U | |
86 | 0126 | 56 | 1010110 | V | |
87 | 0127 | 57 | 1010111 | W | |
88 | 0130 | 58 | 1011000 | X | |
89 | 0131 | 59 | 1011001 | Y | |
90 | 0132 | 5A | 1011010 | Z | |
91 | 0133 | 5B | 1011011 | [ | Crochet ouvrant |
92 | 0134 | 5C | 1011100 | \ | Barre oblique inversée (backslash en anglais) ; également nommée Antislash |
93 | 0135 | 5D | 1011101 | ] | Crochet fermant |
94 | 0136 | 5E | 1011110 | ^ | Accent circonflexe |
95 | 0137 | 5F | 1011111 | _ | Tiret bas ou souligné (underscore en anglais) |
96 | 0140 | 60 | 1100000 | ` | Accent grave [3] |
97 | 0141 | 61 | 1100001 | a | |
98 | 0142 | 62 | 1100010 | b | |
99 | 0143 | 63 | 1100011 | c | |
100 | 0144 | 64 | 1100100 | d | |
101 | 0145 | 65 | 1100101 | e | |
102 | 0146 | 66 | 1100110 | f | |
103 | 0147 | 67 | 1100111 | g | |
104 | 0150 | 68 | 1101000 | h | |
105 | 0151 | 69 | 1101001 | i | |
106 | 0152 | 6A | 1101010 | j | |
107 | 0153 | 6B | 1101011 | k | |
108 | 0154 | 6C | 1101100 | l | |
109 | 0155 | 6D | 1101101 | m | |
110 | 0156 | 6E | 1101110 | n | |
111 | 0157 | 6F | 1101111 | o | |
112 | 0160 | 70 | 1110000 | p | |
113 | 0161 | 71 | 1110001 | q | |
114 | 0162 | 72 | 1110010 | r | |
115 | 0163 | 73 | 1110011 | s | |
116 | 0164 | 74 | 1110100 | t | |
117 | 0165 | 75 | 1110101 | u | |
118 | 0166 | 76 | 1110110 | v | |
119 | 0167 | 77 | 1110111 | w | |
120 | 0170 | 78 | 1111000 | x | |
121 | 0171 | 79 | 1111001 | y | |
122 | 0172 | 7A | 1111010 | z | |
123 | 0173 | 7B | 1111011 | { | Accolade ouvrante |
124 | 0174 | 7C | 1111100 | | | Barre verticale |
125 | 0175 | 7D | 1111101 | } | Accolade fermante |
126 | 0176 | 7E | 1111110 | ~ | Tilde |
127 | 0177 | 7F | 1111111 | DEL | Delete (effacement) |
[modifier] Caractères de contrôle
[modifier] NULL
Originellement une NOP, un caractère à ignorer. Lui donner le code 0 permettait de prévoir des réserves sur les bandes perforées en laissant des zones sans perforation pour insérer de nouveaux caractères a posteriori. Avec le développement du langage C il a pris une importance particulière quand il a été utilisé comme indicateur de fin de chaîne de caractères.
[modifier] SOH
Start of heading : début d'en-tête. Il est aujourd'hui souvent utilisé dans les communications séries pour permettre la synchronisation après erreur[4].
[modifier] DEL
Delete : effacement. Lui donner le code 127 permettait de supprimer a posteriori un caractère sur les bandes perforées qui codaient les informations sur 7 bits.
[modifier] LF, CR, fin de ligne
Dans un fichier texte, la fin d'une ligne est représentée par un caractère de contrôle (ou une paire). Plusieurs conventions coexistent :
- sous les systèmes Multics, Unix, Type Unix (Linux, AIX, Xenix, Mac OS X, etc.), BeOS, AmigaOS, RISC OS entre autres, la fin de ligne est indiquée par un saut de ligne (LF) ;
- sous les machines Apple II et Mac OS jusqu'à la version 9, la fin de ligne est indiquée par un retour chariot (CR) ;
- sous les systèmes DEC, RT-11 et généralement tous les premiers systèmes non-Unix et non-IBM, CP/M, MP/M, MS-DOS, OS/2 ou Microsoft Windows, la fin de ligne est indiquée par un retour chariot suivi d'un saut de ligne (CR+LF, 2 octets).
Ainsi, lorsque l'on ouvre un fichier ASCII créé par un système sur un autre système, il faut en général faire de la mise en forme (c'est-à-dire refaire les fins de ligne) afin de pouvoir l'afficher et le lire de manière confortable. Mais les éditeurs de texte intelligents (ce qui n'est pas le cas du classique Notepad même sur les derniers Windows) peuvent détecter le type de fin de ligne et agir en conséquence. Les programmes utilisant les fichiers ASCII ne sont en général pas perturbés par un changement de type de fin de ligne.
[modifier] Références
- ↑ Roman Czyborra : ISO 8859-1 and MCS, from ISO 8859 Alphabet Soup (1998).
- ↑ La norme ANSI X3.4 définit le caractère 39 par « apostrophe (closing single quotation mark, acute accent) » et les anciennes tables de caractères le représentaient souvent incliné. Les encodages plus récents restreignent ce code à la représentation de l'apostrophe verticale (ni penchée à droite, ni à gauche, mais neutre). Voir (en)Latin-1's apostrophe, grave accent, acute accent.
- ↑ Le code 96 est également employé comme guillement ouvrant simple en ASCII. En Unicode, il existe un code plus approprié.
- ↑ (en)ASCII character set
[modifier] Articles connexes
[modifier] Liens externes