Le morse a été le premier codage a permettre une communication longue distance. C'est Samuel F.B.Morse qui l'a mis au point en 1844. Ce code est composé de points et de tirets (un codage binaire en quelque sorte...). Il permit d'effectuer des communications beaucoup plus rapides que le Pony Express. L'interpréteur était l'homme à l'époque, il fallait donc une bonne connaissance du code...
De nombreux codes furent inventés dont le code d'émile Baudot (portant d'ailleurs le nom de code Baudot, les anglais l'appelaient Murray Code).
Le 10 mars 1876, le Dr Graham Bell met au point le téléphone, une invention révolutionnaire qui permet de faire circuler de l'information vocale dans des lignes métalliques. Pour l'anecdote, la Chambre des représentants a décidé que l'invention du téléphone revenait à Antonio Meucci. Ce dernier avait en effet déposé une demande de brevet en 1871, mais n'avait pas pu financer celle-ci au-delà de 1874.
Ces lignes permirent l'essor des télescripteurs, des machines permettant de coder et décoder des caractères grâce au code Baudot (Les caractères étaient alors codés sur 5 bits, il y avait donc 32 caractères uniquement...).
Dans les années 60, le code ASCII (American Standard Code for Information Interchange) est adopté comme standard. Il permet le codage de caractères sur 8 bits, soit 256 caractères possibles.
La mémoire de l'ordinateur conserve toutes les données sous forme numérique. Il n'existe pas de méthode pour stocker directement les caractères. Chaque caractère possède donc son équivalent en code numérique: c'est le code ASCII (American Standard Code for Information Interchange - traduisez " Code Americain Standard pour l'Echange d'Informations"). Le code ASCII de base représentait les caractères sur 7 bits (c'est-à-dire 128 caractères possibles, de 0 à 127).
| caractère | code ASCII | code Hexadécimal |
|---|---|---|
| NUL | 0 | 00 |
| SOH | 1 | 01 |
| STX | 2 | 02 |
| ETX | 3 | 03 |
| EOT | 4 | 04 |
| ENQ | 5 | 05 |
| ACK | 6 | 06 |
| BEL | 7 | 07 |
| BS | 8 | 08 |
| TAB | 9 | 09 |
| LF | 10 | 0A |
| VT | 11 | 0B |
| FF | 12 | 0C |
| CR | 13 | 0D |
| SO | 14 | 0E |
| SI | 15 | 0F |
| DLE | 16 | 10 |
| DC1 | 17 | 11 |
| DC2 | 18 | 12 |
| DC3 | 19 | 13 | DC4 | 20 | 14 |
| NAK | 21 | 15 |
| SYN | 22 | 16 |
| ETB | 23 | 17 |
| CAN | 24 | 18 |
| EM | 25 | 19 | SUB | 26 | 1A |
| ESC | 27 | 1B |
| FS | 28 | 1C |
| GS | 29 | 1D |
| RS | 30 | 1E |
| US | 31 | 1F |
| Espace | 32 | 20 |
| ! | 33 | 21 |
| " | 34 | 22 |
| # | 35 | 23 |
| $ | 36 | 24 |
| % | 37 | 25 |
| & | 38 | 26 |
| ' | 39 | 27 |
| ( | 40 | 28 |
| ) | 41 | 29 |
| * | 42 | 2A |
| + | 43 | 2B |
| , | 44 | 2C |
| - | 45 | 2D |
| . | 46 | 2E |
| / | 47 | 2F |
| 0 | 48 | 30 |
| 1 | 49 | 31 |
| 2 | 50 | 32 |
| 3 | 51 | 33 |
| 4 | 52 | 34 |
| 5 | 53 | 35 |
| 6 | 54 | 36 |
| 7 | 55 | 37 |
| 8 | 56 | 38 |
| 9 | 57 | 39 |
| : | 58 | 3A |
| ; | 59 | 3B |
| < | 60 | 3C |
| = | 61 | 3D |
| > | 62 | 3E |
| ? | 63 | 3F |
| @ | 64 | 40 |
| A | 65 | 41 |
| B | 66 | 42 |
| C | 67 | 43 |
| D | 68 | 44 |
| E | 69 | 45 |
| F | 70 | 46 |
| G | 71 | 47 |
| H | 72 | 48 |
| I | 73 | 49 |
| J | 74 | 4A |
| K | 75 | 4B |
| L | 76 | 4C |
| M | 77 | 4D |
| N | 78 | 4E |
| O | 79 | 4F |
| P | 80 | 50 |
| Q | 81 | 51 |
| R | 82 | 52 |
| S | 83 | 53 |
| T | 84 | 54 |
| U | 85 | 55 |
| V | 86 | 56 |
| W | 87 | 57 |
| X | 88 | 58 |
| Y | 89 | 59 |
| Z | 90 | 5A |
| [ | 91 | 5B |
| \ | 92 | 5C |
| ] | 93 | 5D |
| ^ | 94 | 5E |
| _ | 95 | 5F |
| ` | 96 | 60 |
| a | 97 | 61 |
| b | 98 | 62 |
| c | 99 | 63 |
| d | 100 | 64 |
| e | 101 | 65 |
| f | 102 | 66 |
| g | 103 | 67 |
| h | 104 | 68 |
| i | 105 | 69 |
| j | 106 | 6A |
| k | 107 | 6B |
| l | 108 | 6C |
| m | 109 | 6D |
| n | 110 | 6E |
| o | 111 | 6F |
| p | 112 | 70 |
| q | 113 | 71 |
| r | 114 | 72 |
| s | 115 | 73 |
| t | 116 | 74 |
| u | 117 | 75 |
| v | 118 | 76 |
| w | 119 | 77 |
| x | 120 | 78 |
| y | 121 | 79 |
| z | 122 | 7A |
| { | 123 | 7B |
| | | 124 | 7C |
| } | 125 | 7D |
| ~ | 126 | 7E |
| Touche de suppression | 127 | 7F |
Le code ASCII a été mis au point pour la langue anglaise, il ne contient donc pas de caractères accentués, ni de
caractères spécifiques à une langue. Pour coder ce type de caractère il faut recourir à un autre code.
Le code ASCII a donc été étendu à 8 bits (un octet) pour pouvoir coder plus de caractères
(on parle d'ailleurs de code ASCII étendu...).
Ce code attribue les valeurs 0 à 255 (donc codées sur 8 bits, soit 1 octet)
aux lettres majuscules et minuscules, aux chiffres, aux marques de ponctuation et aux autres symboles
(caractères accentués dans le cas du code iso-latin1).
|
Le code ASCII étendu n'est pas unique et dépend fortement de la plateforme utilisée. |
Le code EBCDIC (Extended Binary-Coded Decimal Interchange Code), développé par IBM, permet de coder des caractères sur 8 bits. Bien que largement répandu sur les machines IBM, il n'a pas eu le succès qu'a connu le code ASCII.
Le code Unicode est un système de codage des caractères sur 16 bits mis au point en 1991. Le système Unicode permet de représenter n'importe quel caractère par un code sur 16 bits, indépendamment de tout système d'exploitation ou langage de programmation.
Il regroupe ainsi la quasi-totalité des alphabets existants (arabe, arménien, cyrillique, grec, hébreu, latin, ...) et est compatible avec le code ASCII.
L'ensemble des codes Unicode est disponible sur le site http://www.unicode.org.