# American Standard Code for Information Interchange

L'American Standard Code for Information Interchange (Code américain normalisé pour l'échange d'information), plus connu sous l'acronyme ASCII (/as.ki/, ), est une norme informatique d'encodage de caractères. Elle est apparue dans les années 1960. Elle contient 128 points de code codés sur 7 bits et permet d'encoder les chiffres arabes de 0 à 9, les 26 lettres de l'alphabet latin en minuscules et en capitales, des symboles mathématiques et de ponctuation.
ASCII est la norme de codage de caractères la plus influente à ce jour. Elle suffit pour représenter les textes en anglais, mais elle est trop limitée pour les autres langues, dont le français et ses lettres accentuées. De nombreuses normes informatiques ont été fondée sur ASCII, ce qui fait que les limitations de son jeu de caractères sont encore sensibles au XXIe siècle, par exemple dans le choix restreint de caractères généralement offerts pour composer une adresse électronique et une adresse web.
L'ASCII est une des variantes de la norme ISO/CEI 646. Les caractères étant codés sur 7 bits, il est impossible d'avoir un point de code ASCII supérieur à 127 (en décimal, soit 0x7F en hexadécimal, et \177 en octal – selon des notations habituelles). Des valeurs supérieures à 127 existent dans des extensions de l'ASCII, qui sont parfois informellement appelées ASCII étendu. Il existe plusieurs dizaines de normes étendant ASCII : régionales (ISO/CEI 8859), nationales (GB 18030) ou internationales (Unicode).

## Histoire

Avant la standardisation, de nombreux codages de caractères incompatibles entre eux existaient. Chaque matériel avait son propre codage, lié aux techniques qu'il utilisait. Tout ordinateur, comme l'IBM 1130, était livré avec ses sous-programmes et ses tables permettant de transposer les codes d'un matériel à un autre. D'autres standards, comme l'EBCDIC d'IBM, étaient utilisés, notamment pour les cartes perforées$^,$.
En 1960, l'ISO a créé le Technical Committee on Computers and Information Processing (Comité technique pour les ordinateurs et le traitement de l'information). Il a été divisé en six groupes de travail A à F :
* A : Glossaire ;
* B : Jeux et codages des caractères ;
* C : Reconnaissance des caractères ;
* D : Supports d'entrée et de sortie ;
* E : Langages de programmation ;
* F : Transmission de données numériques.
L'American Standards Association (ASA, aujourd'hui ANSI) était chargée du standard des États-Unis. L'ASA a reconnu le consortium Business Equipment Manufacturers Association (BEMA, puis, CBEMA) comme le parrain du travail de standardisation du traitement des données. En 1960, BEMA a formé un groupe de traitement des données des partenaires, dont Minneapolis-Honeywell. Ce groupe a formé un Plans and Policies Committee, qui à son tour a formé l'Engineering Committee. L'Engineering Committee a formé le comité X3, qui a été reconnu par l'ASA comme Sectional Committee. Parmi les membres du comité, Bob Bemer est parfois présenté comme père de l'ASCII, ce qu'il ne faut pas comprendre comme inventeur de l'ASCII, mais comme grand artisan de la diffusion d'ASCII.
En 1961, le DoD met au point un code standard de transmission de donnée sur 8 bits. Ce standard 8 bits est une variante des standards FIELDATA sixbits utilisés dans la décennie précédente par la défense. Il a eu une influence notable sur la première version de l'ASCII.
En 1963, la première version publiée de l'ASCII apparaît. La liste des caractères à considérer et leur position ont été débattues.
Sa dernière version stabilisée a été normalisée par l'ANSI en 1986 sous la désignation ANSI X3.4:1986 (après deux autres versions en 1967 et 1968, historiquement normalisées par l'ASI, devenu ANSI mais qui ne normalisait pas encore toutes les positions). C'est également la variante américaine des jeux de caractères codés selon la norme ISO/CEI 646 avec laquelle on la confond souvent (d'où sa désignation également comme US-ASCII pour lever l'ambigüité, désignation préférée dans le registre IANA des jeux de caractères codés).
À l'époque elle a été en concurrence avec des standards incompatibles. Par la suite, l'existence de nombreux codages reprenant les conventions de l'ASCII l'a rendu très populaire. IBM, qui utilisait sur ses mainframes un autre codage, l'EBCDIC, ne commença à utiliser officiellement l'ASCII sur ses matériels qu'avec l'IBM PC, en 1981.
En 1983, la France abandonne la norme Z62010 au profit de l'ASCII.

## 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. Toutefois, les ordinateurs travaillant presque tous sur un multiple de huit bits (un octet) depuis les années 1970, chaque caractère d'un texte en ASCII est souvent stocké dans un octet dont le 8e bit est 0. Aujourd'hui encore, certains systèmes de messagerie électronique et de SMS fonctionnent avec des bytes ou multiplets composés de seulement sept bits (contrairement à un octet qui est un byte ou multiplet standardisé à huit bits).
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 127 est la commande pour effacer. Le caractère numéro 32 est l'espace. Le caractère 7 provoque l'émission d'un signal sonore. Les autres caractères sont les chiffres arabes, les lettres latines majuscules et minuscules sans accent, des symboles de ponctuation, des opérateurs mathématiques et quelques autres symboles.

### Limitations

L'absence des caractères des langues étrangères à l'anglais rend ce standard insuffisant à lui seul pour des textes étrangers (par exemple en langue française), ce qui rend nécessaire l'utilisation d'autres encodages.
Lorsqu'il est employé seul pour la langue anglaise, il interdit l'usage des accents dans la langue anglaise.
Quelques-uns des caractères graphiques ASCII ont provoqué une polysémie. Ceci est en tout ou partie lié au nombre limité de codets dans un jeu à sept bits. Ceci se retrouve notamment dans les symboles de ponctuation et l'utilisation des guillemets. L'ASCII a été conservé parce qu'il est omniprésent dans de nombreux logiciels. Cet héritage se retrouve dans Unicode où ces signes sont dans un bloc disjoint des autres symboles similaires, se trouvant pour la plupart codés à partir de U+2000.

## Internationalisation

Les limites du standard américain ASCII ont conduit, sur trois périodes différentes, à trois approches de l'internationalisation :
* l'utilisation de standards régionaux à caractères mesurant un octet, techniquement les plus faciles à mettre en place ;
* l'utilisation de standards extensibles, où un même octet peut représenter un caractère différent suivant le contexte (famille ISO/CEI 2022) ainsi que des extensions où un caractère est codé sur plusieurs octets ;
* l'utilisation du standard Unicode (famille UTF), qui est celui qui comprend le plus grand nombre de caractères.
Les standards régionaux à caractères mesurant un octet ont l'inconvénient de ne permettre la représentation que d'un ensemble réduit de caractères, comme les caractères d'Europe occidentale. Avec cette approche, l'encodage doit être donné par le contexte.
Les standards extensibles ont l'inconvénient d'être contextuels. Il se peut que des logiciels utilisant certains algorithmes de recherche manquent d'interopérabilité à cet égard.

## Standardisation

Le jeu de codage ASCII est défini quasiment identiquement par plusieurs standards différents, a de nombreuses variantes et a donné naissance à une foison (des dizaines ou des centaines) d'extensions plus ou moins incompatibles entre elles.
Les principales extensions sont justifiées par le fait que l'ASCII ne répond pas aux divers besoins régionaux. Elles sont proposées par des organismes de normalisation, ou par des fournisseurs de produits et de services.

### Les standards ASCII

N.B. — Ne pas confondre USASI X3.4-1968 ou ANSI X3.4-1968 et ANSI X3.4:1986.
Standards ASCII des États-Unis (les standards hérités, et le standard en vigueur) :
* ASA X3.4-1963, (incomplet avec 28 positions libres, et un code de commande non assigné) ;
* USASI X3.4-1967 (renommé rétroactivement ANSI X3.4-1967), qui ne normalisait pas encore toutes les positions ;
* USASI X3.4-1968 (renommé rétroactivement ANSI X3.4-1968), qui ne normalisait pas encore toutes les positions ;
* ANSI X3.4-1977 ;
* ANSI X3.4:1986 (en 1986, et en vigueur aujourd'hui).
Les standards internationaux suivants sont généralement considérés compatibles (quasi identiques) avec le standard ASCII en vigueur de 1986 à 2011, tout en constituant une normalisation internationale officielle :
* Norme ISO/CEI 646 :
** ISO/CEI 646-US Variante des États-Unis,
** Variante IRV internationale ;
* Code page IBM 367 ;
* Alphabet International de Référence :
** Alphabet International de Référence n$^o$ 5 (de 1988),
** Alphabet International de référence n$^o$ 5 (dans le jeu G0 de l'IRV).
La désignation US-ASCII, ASCII É-U ou ASCII des États-Unis est un mélange des désignations précédentes. Le registre IANA lui attribue la dénomination US-ASCII, sans en définir le codage.

## Approximation, variantes et extensions

* Norme ISO/CEI 646
** Variante INV invariable (incomplète par rapport aux deux précédentes).
Trois types de codages de caractères se rapprochent de l'ASCII :
* ceux qui ne changent que par la dénomination — ils sont essentiellement identiques à l'ASCII ;
* ceux qui sont des variantes, l'ASCII étant à l'origine la variante locale aux États-Unis de l'ISO/CEI 646 ;
* ceux qui l'augmentent, dits extensions.

### Alias

En juin 1992, le RFC 1345 et la chambre d'enregistrement de jeux de caractères Internet Assigned Numbers Authority ont reconnu les alias suivants, insensibles à la casse, convenables pour l'utilisation dans des protocoles Internet :
* ANSI_X3.4-1968 (canonical name)
* iso-ir-6
* ANSI_X3.4-1986
* ISO_646.irv:1991
* ASCII (with ASCII-7 and ASCII-8 variants)
* ISO646-US
* US-ASCII (preferred MIME name)
* us
* IBM367
* cp367
* csASCII
L'IANA promeut plus particulièrement la dénomination « US-ASCII » pour Internet.

### Variantes

ASCII a donné naissance à certaines variantes qui conservent la plupart des caractères, mais en remplacent une partie. Dès lors, il ne s'agit plus d'ASCII à strictement parler. Outre ISO/CEI 646, on trouve d'autres variantes dans l'histoire de l'informatique. Par exemple, le circonflexe (#94) est remplacé par la flèche vers le haut et le soulignement (#95) est remplacé par la flèche vers la gauche, dans l'ensemble de caractères intégré des puces Motorola 6847 (VDG) et du GIME, qui équipaient les adapteurs vidéo du TRS-80 Color Computer et d'autres anciens ordinateurs des années 1980. Mais plusieurs années plus tôt, les ordinateurs Xerox équipés du langage de programmation Smalltalk incluaient les mêmes deux caractères (en mode graphique).
Par ailleurs, certains anciens ordinateurs n'étaient équipés que du deux tiers d'ASCII, c'est-à-dire les caractères 32 à 95 plutôt que 32 à 126. C'est alors à proprement parler une variante à 6 bits. Sur le TRS-80 Color Computer, on mettait dans les fichiers les codes 32 à 127, mais ceux de 96 à 127 étaient des versions en couleurs inversées (vert sur noir plutôt que noir sur vert). Ces blocs de 32 caractères étaient échangés au moment d'envoyer au VDG, pour lequel les codes ASCII 32 à 63 étaient numérotés 96 à 127, tandis que les 0 à 63 étaient en couleurs inversées (en soustrayant 64). En outre, les codes 128 à 255 encodaient des formes de blocs en couleurs. Le GIME était capable de fonctionner soit comme le VDG, soit en mode ASCII, avec circonflexe #94, soulignement #95. Il avait aussi en option sa propre extension 8-bit pour les lettres accentuées minuscules et majuscules, compatible avec probablement aucun autre ordinateur.
Certaines extensions 7-bit ont un caractère #127, comme les premiers Apple, qui y avaient un quadrillé, et les cartes vidéo PC (Page de code 437) qui y avaient une sorte de pentagone, en plus de remplir les cases 0 à 31 de flèches, cercles et signes divers. Naturellement, on ne pouvait pas utiliser ces codes dans les contextes où ils avaient une signification de contrôle ; et inversement, lorsque des codes de contrôle n'étaient pas interprétés comme tels, comme quand le #27 est censé signifier commencer une séquence VT100 (ANSI.SYS) mais apparaît comme une flèche vers la gauche (par exemple, ).

### Huitième bit et augmentations

De nombreuses normes de codage de caractères ont repris les codes ASCII et ajouté d’autres caractères pour les codes supérieurs à 127.
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/CEI 8859-1 et de l'Unicode.

#### Extensions mono-octets

En particulier, beaucoup de pages de code é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/CEI 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 l'ASCII, mais qui ne sont pas compatibles entre elles (et parfois même ne sont pas compatibles sur leurs 128 premiers caractères codés). En particulier, les standards Windows-1252 (couramment utilisé sur Microsoft Windows dans les pays occidentaux), ISO/CEI 8859-1 (couramment utilisé sur Internet et Unix) et les pages de code pour PC numéro 437 et 850 (couramment utilisées 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 différencier l'ASCII d'un standard plus étendu.

#### Extensions asiatiques, à base de séquences d'échappement

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, qui bien que développé aussi sur la base de l'US-ASCII, en diffère dans l'assignation d'un des 128 premiers codets), la norme ISO/CEI 10646 a été inventée (et aussi développée au départ séparément par le Consortium Unicode dans une version de sa norme Unicode 1.0 initialement incompatible avec ISO/CEI 10646).
Voir notamment ISO/CEI 2022.

#### Extensions Unicode

La version 1.0 a été abandonnée depuis la version 1.1 afin d'unifier et fusionner les deux répertoires dans un jeu universel de caractères codés. ISO/CEI 10646 codifie des dizaines de milliers de caractères, mais les 128 premiers restent compatibles avec ASCII (dans sa dernière version X3.4-1986) ; la norme Unicode y ajoute des sémantiques supplémentaires. Dans la norme Unicode, le standard ASCII est défini sous le nom de « C0 Controls and Basic Latin ».
Toutefois, certains pays d'Asie orientale (la République populaire de Chine, les anciens dominions britannique et portugais en Chine, de Hong Kong et Macao, qui sont devenus depuis des régions administratives spéciales de Chine, la République de Chine à Taïwan, et le Japon) ont choisi de continuer à développer leur propre norme pour coder le jeu de caractères universel, tout en choisissant de les maintenir entièrement convertibles avec l'ISO/CEI 10646 ; parmi ces normes asiatiques, seule la norme nationale japonaise continue à maintenir une différence dans ses 128 premières positions avec le jeu ASCII, en codant le symbole monétaire du yen à la place de la barre oblique inversée (comme c'est aussi le cas dans la variante japonaise de la norme ISO/CEI 646).

## Influence

L'ASCII a eu une influence importante dans le monde informatique. En particulier, il a longtemps limité les caractères disponibles aux caractères latins non accentués, notamment dans le monde de l'Internet, que ce soit pour les noms de domaine, les adresses de courrier électronique, les caractères disponibles dans le BIOS, ou les caractères dans lesquels peuvent être écrits des programmes informatiques.
La norme ANSI s'est efforcée de régler les problèmes liés à la disparité des séquences de contrôles d'écran sur les différents terminaux informatiques des années 1970, en prescrivant une liste de commandes primitives accessibles sur tous les terminaux, dont les arguments numériques devaient être codés avec les codes ASCII des chiffres. La première des normes ANSI de ce genre est ECMA-48, adoptée en 1976. Ainsi, presque tous les terminaux ou émulateurs reconnaissaient, au milieu des années 1980, des séquences d'échappement ANSI : cela a ouvert l'accès aux terminaux et PC à de nombreux jeux et applicatifs grâce au mode semi-graphique.

## Description
### Table des 128 caractères ASCII

On peut présenter la table des caractères ASCII sous une forme condensée qui met en évidence une organisation fondée sur la base 16.
Dans la table détaillée suivante, les 32 caractères de contrôle (codes 0 à 31 et 127) et l'espace (code 32) sont présentés avec leur nom en anglais suivi d'une traduction entre parenthèses.
| Code en base | Code en base | Code en base | Code en base | Caractère | Signification, |
| 10 | 8 | 16 | 2 | Caractère | Signification, |
| 0 | 0 | 00 | 0000000 | NUL | Null (nul) |
| 1 | 01 | 01 | 0000001 | SOH | Start of Heading (début d'en-tête) |
| 2 | 02 | 02 | 0000010 | STX | Start of Text (début de texte) |
| 3 | 03 | 03 | 0000011 | ETX | End of Text (fin de 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 (sonnerie) |
| 8 | 010 | 08 | 0001000 | BS | Backspace (espacement arrière/supprimer) |
| 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/retour à la ligne) |
| 14 | 016 | 0E | 0001110 | SO | Shift Out (code spécial) |
| 15 | 017 | 0F | 0001111 | SI | Shift In (code standard) |
| 16 | 020 | 10 | 0010000 | DLE | Data Link Escape (échappement en transmission) |
| 17 | 021 | 11 | 0010001 | DC1 | Device Control 1 à 4 (contrôle de périphérique) |
| 18 | 022 | 12 | 0010010 | DC2 | Device Control 1 à 4 (contrôle de périphérique) |
| 19 | 023 | 13 | 0010011 | DC3 | Device Control 1 à 4 (contrôle de périphérique) |
| 20 | 024 | 14 | 0010100 | DC4 | Device Control 1 à 4 (contrôle de périphérique) |
| 21 | 025 | 15 | 0010101 | NAK | Negative Acknowledge (accusé de réception négatif) |
| 22 | 026 | 16 | 0010110 | SYN | Synchronous Idle (attente synchronisée) |
| 23 | 027 | 17 | 0010111 | ETB | End of Transmission Block (fin de 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 (remplacement) |
| 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 | Space (espacement) |
| 33 | 041 | 21 | 0100001 | ! | Point d'exclamation |
| 34 | 042 | 22 | 0100010 | " | Guillemet |
| 35 | 043 | 23 | 0100011 | # | Croisillon ou dièse (ou signe numéro (1992)) |
| 36 | 044 | 24 | 0100100 | $ | Dollar |
| 37 | 045 | 25 | 0100101 | % | Pour cent |
| 38 | 046 | 26 | 0100110 | & | Esperluette |
| 39 | 047 | 27 | 0100111 | ' | Apostrophe |
| 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 | - | Trait d'union, moins |
| 46 | 056 | 2E | 0101110 | . | Point |
| 47 | 057 | 2F | 0101111 | / | Barre oblique |
| 48 | 060 | 30 | 0110000 | 0 | Chiffre zéro |
| 49 | 061 | 31 | 0110001 | 1 | Chiffre un |
| 50 | 062 | 32 | 0110010 | 2 | Chiffre deux |
| 51 | 063 | 33 | 0110011 | 3 | Chiffre trois |
| 52 | 064 | 34 | 0110100 | 4 | Chiffre quatre |
| 53 | 065 | 35 | 0110101 | 5 | Chiffre cinq |
| 54 | 066 | 36 | 0110110 | 6 | Chiffre six |
| 55 | 067 | 37 | 0110111 | 7 | Chiffre sept |
| 56 | 070 | 38 | 0111000 | 8 | Chiffre huit |
| 57 | 071 | 39 | 0111001 | 9 | 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 | @ | Arobase |
| 65 | 0101 | 41 | 1000001 | A | Lettre latine capitale A |
| 66 | 0102 | 42 | 1000010 | B | Lettre latine capitale B |
| 67 | 0103 | 43 | 1000011 | C | Lettre latine capitale C |
| 68 | 0104 | 44 | 1000100 | D | Lettre latine capitale D |
| 69 | 0105 | 45 | 1000101 | E | Lettre latine capitale E |
| 70 | 0106 | 46 | 1000110 | F | Lettre latine capitale F |
| 71 | 0107 | 47 | 1000111 | G | Lettre latine capitale G |
| 72 | 0110 | 48 | 1001000 | H | Lettre latine capitale H |
| 73 | 0111 | 49 | 1001001 | I | Lettre latine capitale I |
| 74 | 0112 | 4A | 1001010 | J | Lettre latine capitale J |
| 75 | 0113 | 4B | 1001011 | K | Lettre latine capitale K |
| 76 | 0114 | 4C | 1001100 | L | Lettre latine capitale L |
| 77 | 0115 | 4D | 1001101 | M | Lettre latine capitale M |
| 78 | 0116 | 4E | 1001110 | N | Lettre latine capitale N |
| 79 | 0117 | 4F | 1001111 | O | Lettre latine capitale O |
| 80 | 0120 | 50 | 1010000 | P | Lettre latine capitale P |
| 81 | 0121 | 51 | 1010001 | Q | Lettre latine capitale Q |
| 82 | 0122 | 52 | 1010010 | R | Lettre latine capitale R |
| 83 | 0123 | 53 | 1010011 | S | Lettre latine capitale S |
| 84 | 0124 | 54 | 1010100 | T | Lettre latine capitale T |
| 85 | 0125 | 55 | 1010101 | U | Lettre latine capitale U |
| 86 | 0126 | 56 | 1010110 | V | Lettre latine capitale V |
| 87 | 0127 | 57 | 1010111 | W | Lettre latine capitale W |
| 88 | 0130 | 58 | 1011000 | X | Lettre latine capitale X |
| 89 | 0131 | 59 | 1011001 | Y | Lettre latine capitale Y |
| 90 | 0132 | 5A | 1011010 | Z | Lettre latine capitale Z |
| 91 | 0133 | 5B | 1011011 | [ | Crochet ouvrant |
| 92 | 0134 | 5C | 1011100 | \ | Barre oblique inversée |
| 93 | 0135 | 5D | 1011101 | ] | Crochet fermant |
| 94 | 0136 | 5E | 1011110 | ^ | Accent circonflexe (avec chasse) |
| 95 | 0137 | 5F | 1011111 | _ | Tiret bas, Trait bas, ou souligné |
| 96 | 0140 | 60 | 1100000 | ` | Accent grave (avec chasse) |
| 97 | 0141 | 61 | 1100001 | a | Lettre latine minuscule a |
| 98 | 0142 | 62 | 1100010 | b | Lettre latine minuscule b |
| 99 | 0143 | 63 | 1100011 | c | Lettre latine minuscule c |
| 100 | 0144 | 64 | 1100100 | d | Lettre latine minuscule d |
| 101 | 0145 | 65 | 1100101 | e | Lettre latine minuscule e |
| 102 | 0146 | 66 | 1100110 | f | Lettre latine minuscule f |
| 103 | 0147 | 67 | 1100111 | g | Lettre latine minuscule g |
| 104 | 0150 | 68 | 1101000 | h | Lettre latine minuscule h |
| 105 | 0151 | 69 | 1101001 | i | Lettre latine minuscule i |
| 106 | 0152 | 6A | 1101010 | j | Lettre latine minuscule j |
| 107 | 0153 | 6B | 1101011 | k | Lettre latine minuscule k |
| 108 | 0154 | 6C | 1101100 | l | Lettre latine minuscule l |
| 109 | 0155 | 6D | 1101101 | m | Lettre latine minuscule m |
| 110 | 0156 | 6E | 1101110 | n | Lettre latine minuscule n |
| 111 | 0157 | 6F | 1101111 | o | Lettre latine minuscule o |
| 112 | 0160 | 70 | 1110000 | p | Lettre latine minuscule p |
| 113 | 0161 | 71 | 1110001 | q | Lettre latine minuscule q |
| 114 | 0162 | 72 | 1110010 | r | Lettre latine minuscule r |
| 115 | 0163 | 73 | 1110011 | s | Lettre latine minuscule s |
| 116 | 0164 | 74 | 1110100 | t | Lettre latine minuscule t |
| 117 | 0165 | 75 | 1110101 | u | Lettre latine minuscule u |
| 118 | 0166 | 76 | 1110110 | v | Lettre latine minuscule v |
| 119 | 0167 | 77 | 1110111 | w | Lettre latine minuscule w |
| 120 | 0170 | 78 | 1111000 | x | Lettre latine minuscule x |
| 121 | 0171 | 79 | 1111001 | y | Lettre latine minuscule y |
| 122 | 0172 | 7A | 1111010 | z | Lettre latine minuscule 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) |

### Groupement par type de caractères
#### Caractères de contrôle

ASCII réserve les 32 premiers codes (nombres décimaux de 0 à 31) pour les caractères de contrôle : codes destinés non à représenter des informations imprimables, mais plutôt à contrôler des périphériques (tels que des imprimantes) qui utilisent ASCII ou à fournir des méta-informations sur les flux de données, tels que ceux stockés sur bande magnétique.
| Binaire | Oct. | Déc. | Hex. | Abréviation | Abréviation | Abréviation | | | | Nom (1967) |
| Binaire | Oct. | Déc. | Hex. | 1963 | 1965 | 1967 | | | | Nom (1967) |
| 000 0000 | 000 | 0 | 00 | NULL | NUL | NUL | ␀ | ^@ | \0 | Caractère nul |
| 000 0001 | 001 | 1 | 01 | SOM | SOH | SOH | ␁ | ^A | | Caractère de début d'en-tête |
| 000 0010 | 002 | 2 | 02 | EOA | STX | STX | ␂ | ^B | | Caractère de début de texte |
| 000 0011 | 003 | 3 | 03 | EOM | ETX | ETX | ␃ | ^C | | Caractère de fin de texte |
| 000 0100 | 004 | 4 | 04 | EOT | EOT | EOT | ␄ | ^D | | Caractère de fin de transmission |
| 000 0101 | 005 | 5 | 05 | WRU | ENQ | ENQ | ␅ | ^E | | Caractère de demande de renseignement |
| 000 0110 | 006 | 6 | 06 | RU | ACK | ACK | ␆ | ^F | | Caractère d'acquittement |
| 000 0111 | 007 | 7 | 07 | BELL | BEL | BEL | ␇ | ^G | \a | Caractère d'appel |
| 000 1000 | 010 | 8 | 08 | FE0 | BS | BS | ␈ | ^H | \b | Caractère de retour arrière$^,$ |
| 000 1001 | 011 | 9 | 09 | HT/SK | HT | HT | ␉ | ^I | \t | Caractère de tabulation horizontale |
| 000 1010 | 012 | 10 | 0A | LF | LF | LF | ␊ | ^J | \n | Caractère de saut de ligne |
| 000 1011 | 013 | 11 | 0B | VTAB | VT | VT | ␋ | ^K | \v | Caractère de tabulation verticale |
| 000 1100 | 014 | 12 | 0C | FF | FF | FF | ␌ | ^L | \f | Caractère de changement de page |
| 000 1101 | 015 | 13 | 0D | CR | CR | CR | ␍ | ^M | \r | Caractère de retour chariot |
| 000 1110 | 016 | 14 | 0E | SO | SO | SO | ␎ | ^N | | Shift Out |
| 000 1111 | 017 | 15 | 0F | SI | SI | SI | ␏ | ^O | | Shift In |
| 001 0000 | 020 | 16 | 10 | DC0 | DLE | DLE | ␐ | ^P | | Data Link Escape |
| 001 0001 | 021 | 17 | 11 | DC1 | DC1 | DC1 | ␑ | ^Q | | Device Control 1 (souvent XON) |
| 001 0010 | 022 | 18 | 12 | DC2 | DC2 | DC2 | ␒ | ^R | | Device Control 2 |
| 001 0011 | 023 | 19 | 13 | DC3 | DC3 | DC3 | ␓ | ^S | | Device Control 3 (souvent XOFF) |
| 001 0100 | 024 | 20 | 14 | DC4 | DC4 | DC4 | ␔ | ^T | | Device Control 4 |
| 001 0101 | 025 | 21 | 15 | ERR | NAK | NAK | ␕ | ^U | | Negative Acknowledgement |
| 001 0110 | 026 | 22 | 16 | SYNC | SYN | SYN | ␖ | ^V | | Synchronous Idle |
| 001 0111 | 027 | 23 | 17 | LEM | ETB | ETB | ␗ | ^W | | End of Transmission Block |
| 001 1000 | 030 | 24 | 18 | S0 | CAN | CAN | ␘ | ^X | | Cancel |
| 001 1001 | 031 | 25 | 19 | S1 | EM | EM | ␙ | ^Y | | End of Medium |
| 001 1010 | 032 | 26 | 1A | S2 | SS | SUB | ␚ | ^Z | | Substitute |
| 001 1011 | 033 | 27 | 1B | S3 | ESC | ESC | ␛ | ^[ | \e | Escape |
| 001 1100 | 034 | 28 | 1C | S4 | FS | FS | ␜ | ^\ | | File Separator |
| 001 1101 | 035 | 29 | 1D | S5 | GS | GS | ␝ | ^] | | Group Separator |
| 001 1110 | 036 | 30 | 1E | S6 | RS | RS | ␞ | ^^ | | Record Separator |
| 001 1111 | 037 | 31 | 1F | S7 | US | US | ␟ | ^_ | | Unit Separator |
| 111 1111 | 177 | 127 | 7F | DEL | DEL | DEL | ␡ | ^? | | Delete$^,$ |

##### NUL

Null : nul. Il est à l'origine une NOP, c'est-à-dire 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.

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

##### DEL

Delete : effacement. Lui donner le code 127 (1111111 en binaire) permettait de supprimer a posteriori un caractère sur les bandes perforées qui codaient les informations sur 7 bits. N'importe quel caractère pouvait être transformé en DEL en complétant la perforation des 7 bits qui le composaient.

##### LF, CR

Line Feed : saut de ligne, Carriage Return : retour chariot. Dans un fichier texte, la fin d'une ligne est représentée par un ou deux caractères de contrôle. Plusieurs conventions existent :
* sur 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) ;
* sur les machines Apple II et Mac OS jusqu'à la version 9, la fin de ligne est indiquée par un retour chariot (CR) ;
* sur 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 suivi de LF).
Ainsi, lorsqu'on transfère un fichier ASCII entre des systèmes ayant des conventions de fin de ligne différentes, il faut convertir les fins de ligne pour pouvoir manipuler le fichier confortablement sur le système cible. Autrement, il faut utiliser un éditeur de texte capable de gérer les diverses conventions de fin de ligne, ce qui n'est par exemple pas le cas du classique Bloc-notes de Microsoft Windows. Les programmes utilisant les fichiers ASCII ne sont en général pas perturbés par un changement de type de fin de ligne.

##### SUB

Substitute : remplacement. Il est souvent associé à la combinaison de touches Ctrl + z et est utilisé dans les communications séries pour permettre l'envoi des données en lieu et place de la touche entrée.

#### Caractères imprimables

Les codes 20$_{hex}$ à 7E$_{hex}$, appelés caractères imprimables, représentent des lettres, des chiffres, des signes de ponctuation et quelques symboles divers. Il y a 95 caractères imprimables au total.
Le code 20$_{hex}$, le caractère espace, désigne l'espace entre les mots, tel que produit par la barre d'espace d'un clavier. Le caractère espace étant considéré comme un graphique invisible (plutôt que comme caractère de contrôle$^{:223}$$^,$), il est répertorié dans le tableau ci-dessous et non dans la section précédente.
Le code 7F$_{hex}$ correspond au caractère d'effacement (DEL) n'est pas imprimable et est donc omis de ce tableau. Il est inclus dans le tableau de la section précédente.
| Binaire | Oct. | Déc. | Hex. | Glyphe | Glyphe | Glyphe |
| Binaire | Oct. | Déc. | Hex. | 1963 | 1965 | 1967 |
| 010 0000 | 040 | 32 | 20 | espace | espace | espace |
| 010 0001 | 041 | 33 | 21 | ! | ! | ! |
| 010 0010 | 042 | 34 | 22 | " | " | " |
| 010 0011 | 043 | 35 | 23 | # | # | # |
| 010 0100 | 044 | 36 | 24 | $ | $ | $ |
| 010 0101 | 045 | 37 | 25 | % | % | % |
| 010 0110 | 046 | 38 | 26 | & | & | & |
| 010 0111 | 047 | 39 | 27 | ' | ' | ' |
| 010 1000 | 050 | 40 | 28 | ( | ( | ( |
| 010 1001 | 051 | 41 | 29 | ) | ) | ) |
| 010 1010 | 052 | 42 | 2A | * | * | * |
| 010 1011 | 053 | 43 | 2B | + | + | + |
| 010 1100 | 054 | 44 | 2C | , | , | , |
| 010 1101 | 055 | 45 | 2D | - | - | - |
| 010 1110 | 056 | 46 | 2E | . | . | . |
| 010 1111 | 057 | 47 | 2F | / | / | / |
| Binaire | Oct. | Déc. | Hex. | Glyphe | Glyphe | Glyphe |
| Binaire | Oct. | Déc. | Hex. | 1963 | 1965 | 1967 |
| 011 0000 | 060 | 48 | 30 | 0 | 0 | 0 |
| 011 0001 | 061 | 49 | 31 | 1 | 1 | 1 |
| 011 0010 | 062 | 50 | 32 | 2 | 2 | 2 |
| 011 0011 | 063 | 51 | 33 | 3 | 3 | 3 |
| 011 0100 | 064 | 52 | 34 | 4 | 4 | 4 |
| 011 0101 | 065 | 53 | 35 | 5 | 5 | 5 |
| 011 0110 | 066 | 54 | 36 | 6 | 6 | 6 |
| 011 0111 | 067 | 55 | 37 | 7 | 7 | 7 |
| 011 1000 | 070 | 56 | 38 | 8 | 8 | 8 |
| 011 1001 | 071 | 57 | 39 | 9 | 9 | 9 |
| 011 1010 | 072 | 58 | 3A | : | : | : |
| 011 1011 | 073 | 59 | 3B | ; | ; | ; |
| 011 1100 | 074 | 60 | 3C | < | < | < |
| 011 1101 | 075 | 61 | 3D | = | = | = |
| 011 1110 | 076 | 62 | 3E | > | > | > |
| 011 1111 | 077 | 63 | 3F | ? | ? | ? |
| Binaire | Oct. | Déc. | Hex. | Glyphe | Glyphe | Glyphe |
| Binaire | Oct. | Déc. | Hex. | 1963 | 1965 | 1967 |
| 100 0000 | 100 | 64 | 40 | @ | ` | @ |
| 100 0001 | 101 | 65 | 41 | A | A | A |
| 100 0010 | 102 | 66 | 42 | B | B | B |
| 100 0011 | 103 | 67 | 43 | C | C | C |
| 100 0100 | 104 | 68 | 44 | D | D | D |
| 100 0101 | 105 | 69 | 45 | E | E | E |
| 100 0110 | 106 | 70 | 46 | F | F | F |
| 100 0111 | 107 | 71 | 47 | G | G | G |
| 100 1000 | 110 | 72 | 48 | H | H | H |
| 100 1001 | 111 | 73 | 49 | I | I | I |
| 100 1010 | 112 | 74 | 4A | J | J | J |
| 100 1011 | 113 | 75 | 4B | K | K | K |
| 100 1100 | 114 | 76 | 4C | L | L | L |
| 100 1101 | 115 | 77 | 4D | M | M | M |
| 100 1110 | 116 | 78 | 4E | N | N | N |
| 100 1111 | 117 | 79 | 4F | O | O | O |
| Binaire | Oct. | Déc. | Hex. | Glyphe | Glyphe | Glyphe |
| Binaire | Oct. | Déc. | Hex. | 1963 | 1965 | 1967 |
| 101 0000 | 120 | 80 | 50 | P | P | P |
| 101 0001 | 121 | 81 | 51 | Q | Q | Q |
| 101 0010 | 122 | 82 | 52 | R | R | R |
| 101 0011 | 123 | 83 | 53 | S | S | S |
| 101 0100 | 124 | 84 | 54 | T | T | T |
| 101 0101 | 125 | 85 | 55 | U | U | U |
| 101 0110 | 126 | 86 | 56 | V | V | V |
| 101 0111 | 127 | 87 | 57 | W | W | W |
| 101 1000 | 130 | 88 | 58 | X | X | X |
| 101 1001 | 131 | 89 | 59 | Y | Y | Y |
| 101 1010 | 132 | 90 | 5A | Z | Z | Z |
| 101 1011 | 133 | 91 | 5B | [ | [ | [ |
| 101 1100 | 134 | 92 | 5C | \ | ~ | \ |
| 101 1101 | 135 | 93 | 5D | ] | ] | ] |
| 101 1110 | 136 | 94 | 5E | ↑ | ^ | ^ |
| 101 1111 | 137 | 95 | 5F | ← | _ | _ |
| Binaire | Oct. | Déc. | Hex. | Glyphe | Glyphe | Glyphe |
| Binaire | Oct. | Déc. | Hex. | 1963 | 1965 | 1967 |
| 110 0000 | 140 | 96 | 60 | | @ | ` |
| 110 0001 | 141 | 97 | 61 | | a | a |
| 110 0010 | 142 | 98 | 62 | | b | b |
| 110 0011 | 143 | 99 | 63 | | c | c |
| 110 0100 | 144 | 100 | 64 | | d | d |
| 110 0101 | 145 | 101 | 65 | | e | e |
| 110 0110 | 146 | 102 | 66 | | f | f |
| 110 0111 | 147 | 103 | 67 | | g | g |
| 110 1000 | 150 | 104 | 68 | | h | h |
| 110 1001 | 151 | 105 | 69 | | i | i |
| 110 1010 | 152 | 106 | 6A | | j | j |
| 110 1011 | 153 | 107 | 6B | | k | k |
| 110 1100 | 154 | 108 | 6C | | l | l |
| 110 1101 | 155 | 109 | 6D | | m | m |
| 110 1110 | 156 | 110 | 6E | | n | n |
| 110 1111 | 157 | 111 | 6F | | o | o |
| Binaire | Oct. | Déc. | Hex. | Glyphe | Glyphe | Glyphe |
| Binaire | Oct. | Déc. | Hex. | 1963 | 1965 | 1967 |
| 111 0000 | 160 | 112 | 70 | | p | p |
| 111 0001 | 161 | 113 | 71 | | q | q |
| 111 0010 | 162 | 114 | 72 | | r | r |
| 111 0011 | 163 | 115 | 73 | | s | s |
| 111 0100 | 164 | 116 | 74 | | t | t |
| 111 0101 | 165 | 117 | 75 | | u | u |
| 111 0110 | 166 | 118 | 76 | | v | v |
| 111 0111 | 167 | 119 | 77 | | w | w |
| 111 1000 | 170 | 120 | 78 | | x | x |
| 111 1001 | 171 | 121 | 79 | | y | y |
| 111 1010 | 172 | 122 | 7A | | z | z |
| 111 1011 | 173 | 123 | 7B | | { | { |
| 111 1100 | 174 | 124 | 7C | ACK | ¬ | | |
| 111 1101 | 175 | 125 | 7D | | } | } |
| 111 1110 | 176 | 126 | 7E | ESC | | | ~ |