American Standard Code for Information Interchange
Un article de Wikipédia, l'encyclopédie libre.
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 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.
[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 éventuellement 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
généralement utilisés pour le XON/XOFF dans les protocoles de connexion |
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 vertical |
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 verticale ou Accent aigu |
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 | |
49 | 061 | 31 | 0110001 | 1 | |
50 | 062 | 32 | 0110010 | 2 | |
51 | 063 | 33 | 0110011 | 3 | |
52 | 064 | 34 | 0110100 | 4 | |
53 | 065 | 35 | 0110101 | 5 | |
54 | 066 | 36 | 0110110 | 6 | |
55 | 067 | 37 | 0110111 | 7 | |
56 | 070 | 38 | 0111000 | 8 | |
57 | 071 | 39 | 0111001 | 9 | |
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) |
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 |
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'entête. Il est aujourd'hui souvent utilisé dans les communications séries pour permettre la synchronisation après erreur[1].
[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 sytè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 (CRLF).
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
[modifier] Articles connexes