ASCII

Un article de Wikipédia, l'encyclopédie libre
Aller à la navigation Aller à la recherche

ASCII
Tableau de codes USASCII.png
Tableau ASCII d'un manuel d'imprimante antérieur à 1972
MIME / IANAus-ascii
Pseudo(s)ISO-IR-006, [1] ANSI_X3.4-1968, ANSI_X3.4-1986, ISO_646.irv:1991, ISO646-US, nous, IBM367, cp367 [2]
Langue(s)Anglais
ClassificationSérie ISO 646
Rallonges
Précédé parITA 2 , DONNÉES DE TERRAIN
succédé parISO 8859 , Unicode

ASCII ( / æ s k Í / ( écouter ) A propos de ce son CUL -kee ), [3] : 6 abrégé de code standard américain pour l' échange d' information , est un codage de caractères standard pour la communication électronique. Les codes ASCII représentent du texte dans les ordinateurs, les équipements de télécommunications et d'autres appareils. La plupart des schémas de codage de caractères modernes sont basés sur l'ASCII, bien qu'ils prennent en charge de nombreux caractères supplémentaires.

L' Internet Assigned Numbers Authority (IANA) préfère le nom US-ASCII pour ce codage de caractères. [2]

L'ASCII est l'un des jalons de l' IEEE .

Aperçu

L'ASCII a été développé à partir du code télégraphique . Sa première utilisation commerciale était un code de téléimprimeur à sept bits promu par les services de données de Bell. Les travaux sur la norme ASCII ont commencé en mai 1961, avec la première réunion du sous-comité X3.2 de l' American Standards Association (ASA) (maintenant l' American National Standards Institute ou ANSI). La première édition de la norme a été publiée en 1963, [4] [5] a subi une révision majeure en 1967, [6] [7] et a connu sa plus récente mise à jour en 1986. [8]Par rapport aux codes télégraphiques antérieurs, le code Bell proposé et l'ASCII ont tous deux été ordonnés pour un tri plus pratique (c. [ citation nécessaire ]

L'utilisation du format ASCII pour l'échange de réseau a été décrite en 1969. [9] Ce document a été officiellement élevé au rang de norme Internet en 2015. [10]

Basé à l'origine sur l' alphabet anglais , l'ASCII encode 128 caractères spécifiés en nombres entiers de sept bits, comme le montre le tableau ASCII ci-dessus. [11] Quatre-vingt-quinze des caractères codés sont imprimables : ceux-ci incluent les chiffres 0 à 9 , les lettres minuscules a à z , les lettres majuscules A à Z et les symboles de ponctuation . De plus, la spécification ASCII d'origine comprenait 33 codes de contrôle non imprimables provenant des machines Teletype ; la plupart d'entre eux sont maintenant obsolètes, [12]bien que quelques-uns soient encore couramment utilisés, comme le retour chariot , le saut de ligne et les codes de tabulation .

Par exemple, i minuscule serait représenté dans l'encodage ASCII par binaire 1101001 = hexadécimal 69 ( i est la neuvième lettre) = décimal 105.

Histoire

ASCII (1963). Les images de contrôle des contrôles équivalents sont affichées lorsqu'elles existent, ou un point gris dans le cas contraire.

L'American Standard Code for Information Interchange (ASCII) a été développé sous les auspices d'un comité de l' American Standards Association (ASA), appelé comité X3, par son sous-comité X3.2 (plus tard X3L2), et plus tard par le X3 de ce sous-comité. 2.4 groupe de travail (maintenant INCITS ). L'ASA est devenue l' Institut de normalisation des États-Unis (USASI) [3] : 211 et finalement l' Institut national de normalisation américain (ANSI).

Avec les autres caractères spéciaux et codes de contrôle remplis, ASCII a été publié sous le nom ASA X3.4-1963, [5] [13] laissant 28 positions de code sans aucune signification assignée, réservées pour une future normalisation, et un code de contrôle non assigné. [3] : 66, 245 Il y avait un débat à l'époque pour savoir s'il devrait y avoir plus de caractères de contrôle plutôt que l'alphabet minuscule. [3] : 435 L'indécision ne dura pas longtemps : en mai 1963, le Groupe de travail du CCITT sur le nouvel alphabet télégraphique proposa d'attribuer des caractères minuscules aux bâtons [a] [14] 6 et 7, [15] et International Organization for StandardizationLe TC 97 SC 2 a voté en octobre pour incorporer le changement dans son projet de norme. [16] Le groupe de travail X3.2.4 a voté son approbation pour le changement en ASCII lors de sa réunion de mai 1963. [17] La localisation des lettres minuscules dans les bâtonnets [a] [14] 6 et 7 a fait que les caractères différaient en termes de bit de la majuscule d'un seul bit, ce qui a simplifié la correspondance des caractères insensibles à la casse et la construction des claviers et des imprimantes.

Le comité X3 a apporté d'autres modifications, y compris d'autres nouveaux caractères (les caractères d' accolade et de barre verticale ), [18] en renommant certains caractères de contrôle (SOM est devenu le début de l'en-tête (SOH)) et en déplaçant ou en supprimant d'autres (RU a été supprimé). [3] : 247-248 ASCII a ensuite été mis à jour en tant que USAS X3.4-1967, [6] [19] puis USAS X3.4-1968, ANSI X3.4-1977, et enfin, ANSI X3.4-1986. [8] [20]

Révisions de la norme ASCII :

Dans la norme X3.15, le comité X3 a également abordé la façon dont l'ASCII doit être transmis (le bit le moins significatif en premier), [3] : 249–253 [26] et comment il doit être enregistré sur une bande perforée. Ils ont proposé une norme à 9 pistes pour la bande magnétique et ont tenté de traiter certains formats de cartes perforées .

Considérations sur la conception

Largeur de bits

Le sous-comité X3.2 a conçu l'ASCII sur la base des premiers systèmes de codage des téléscripteurs. Comme d'autres codages de caractères , l'ASCII spécifie une correspondance entre les modèles de bits numériques et les symboles de caractères (c'est-à-dire les graphèmes et les caractères de contrôle ). Cela permet aux appareils numériques de communiquer entre eux et de traiter, stocker et communiquer des informations orientées caractères telles que le langage écrit. Avant le développement de l'ASCII, les codages utilisés comprenaient 26 caractères alphabétiques , 10 chiffres numériques et de 11 à 25 symboles graphiques spéciaux. Pour inclure tous ces caractères et contrôler les caractères compatibles avec leComité Consultatif International Téléphonique et Télégraphique (CCITT) International Telegraph Alphabet No. 2 (ITA2) standard de 1924, [27] [28] FIELDATA (1956 [ citation nécessaire ] ), et au début de l' EBCDIC (1963), plus de 64 codes étaient nécessaires pour ASCII.

ITA2 était quant à lui basé sur le code télégraphique à 5 bits inventé par Émile Baudot en 1870 et breveté en 1874. [28]

Le comité a débattu de la possibilité d'une fonction de décalage (comme dans ITA2 ), qui permettrait à plus de 64 codes d'être représentés par un code à six bits . Dans un code décalé, certains codes de caractères déterminent les choix entre les options pour les codes de caractères suivants. Il permet un codage compact, mais est moins fiable pour la transmission de données , car une erreur dans la transmission du code de décalage rend généralement une longue partie de la transmission illisible. Le comité des normes a décidé de ne pas déplacer, et donc ASCII a exigé au moins un code à sept bits. [3] : 215, 236 §4

Le comité a considéré un code à huit bits, puisque huit bits ( octets ) permettraient à deux modèles de quatre bits d'encoder efficacement deux chiffres avec des décimales codées en binaire . Cependant, il faudrait que toutes les transmissions de données envoient huit bits alors que sept pourraient suffire. Le comité a voté pour l'utilisation d'un code à sept bits afin de minimiser les coûts associés à la transmission de données. Étant donné que la bande perforée à l'époque pouvait enregistrer huit bits dans une position, elle permettait également un bit de parité pour la vérification des erreurs si désiré. [3] : 217, 236 §5 Les machines à huit bits (avec des octets comme type de données natif) qui n'utilisaient pas le contrôle de parité mettaient généralement le huitième bit à 0. [29]

Organisation interne

Le code lui-même était structuré de manière à ce que la plupart des codes de contrôle soient ensemble et que tous les codes graphiques soient ensemble, pour faciliter l'identification. Les deux premiers bâtons dits ASCII [a] [14] (32 positions) étaient réservés aux caractères de contrôle. [3] : 220, 236 8,9) Le caractère "espace" devait précéder les graphiques pour faciliter le tri , il est donc devenu la position 20 hex ; [3] : 237 §10 pour la même raison, de nombreux signes spéciaux couramment utilisés comme séparateurs ont été placés avant les chiffres. Le comité a décidé qu'il était important de prendre en charge les alphabets majuscules de 64 caractères, et a choisi de modeler l'ASCII afin qu'il puisse être réduit facilement à un ensemble de codes graphiques utilisables de 64 caractères, [3] : 228, 237 §14 comme cela a été fait dans le code DEC SIXBIT (1963). Les lettres minuscules n'étaient donc pas entrelacées avec des majuscules. Pour garder des options disponibles pour les lettres minuscules et autres graphiques, les codes spéciaux et numériques ont été disposés avant les lettres, et la lettre A a été placée en position 41 hexadécimale pour correspondre au projet de la norme britannique correspondante. [3] : 238 §18 Les chiffres 0-9 sont préfixés par 011, mais les 4 bits restants correspondent à leurs valeurs respectives en binaire, faisant la conversion avecdécimal codé en binaire simple.

De nombreux caractères non alphanumériques étaient positionnés pour correspondre à leur position décalée sur les machines à écrire ; une subtilité importante est que ceux-ci étaient basés sur des machines à écrire mécaniques , et non sur des machines à écrire électriques . [30] Les machines à écrire mécaniques ont suivi la norme établie par le Remington n ° 2 (1878), la première machine à écrire avec une touche de décalage, et les valeurs décalées de 23456789-étaient "#$%_&'() - les premières machines à écrire ont omis 0 et 1 , en utilisant O (lettre majuscule o ) et l (lettre L minuscule ) à la place, mais les paires 1!et 0)sont devenues standard une fois que 0 et 1 sont devenus communs. Ainsi, en ASCII!"#$%ont été placés dans le deuxième bâton, [a] [14] positions 1 à 5, correspondant aux chiffres 1 à 5 dans le bâton adjacent. [a] [14] Les parenthèses ne pouvaient cependant pas correspondre à 9 et 0 , car la place correspondant à 0 était prise par le caractère espace. Cela a été résolu en supprimant _(soulignement) de 6 et en décalant les caractères restants, qui correspondaient à de nombreuses machines à écrire européennes qui plaçaient les parenthèses avec 8 et 9 . Cet écart par rapport aux machines à écrire a conduit à des claviers à paires de bits , notamment le modèle Teletype 33, qui utilisait la disposition décalée vers la gauche correspondant à l'ASCII, et non aux machines à écrire mécaniques traditionnelles. Les machines à écrire électriques, notamment l' IBM Selectric (1961), utilisaient une disposition quelque peu différente qui est devenue la norme sur les ordinateurs - à la suite de l' IBM PC (1981), en particulier le modèle M (1984) - et donc les valeurs de décalage pour les symboles sur les claviers modernes ne correspondent pas aussi proche de la table ASCII que les claviers précédents. La /?paire date également du n° 2, et les ,< .>paires ont été utilisées sur certains claviers (d'autres, dont le n° 2, n'ont pas décalé ,(virgule) ou .(point) afin qu'elles puissent être utilisées en majuscule sans décaler). Cependant, l'ASCII a divisé le;:paire (datant du n° 2), et réarrangé les symboles mathématiques (conventions variées, généralement -* =+) en :* ;+ -=.

Certains caractères communs n'ont pas été inclus, notamment ½¼¢, tandis qu'ils ^`~ont été inclus comme signes diacritiques à usage international et <>à usage mathématique, avec les caractères de ligne simples \|(en plus du commun /). Le symbole @ n'était pas utilisé en Europe continentale et le comité s'attendait à ce qu'il soit remplacé par un À accentué dans la variante française, donc le @ a été placé en position 40 hex , juste avant la lettre A. [3] : 243

Les codes de contrôle jugés essentiels pour la transmission des données étaient le début du message (SOM), la fin de l'adresse (EOA), la fin du message (EOM), la fin de la transmission (EOT), « qui êtes-vous ? » (WRU), "l'êtes-vous ?" (RU), un contrôle de périphérique réservé (DC0), un ralenti synchrone (SYNC) et un accusé de réception (ACK). Ceux-ci ont été positionnés pour maximiser la distance de Hamming entre leurs modèles de bits. [3] : 243–245

Ordre des caractères

L'ordre des codes ASCII est également appelé ordre ASCIIbétique . [31] La collation des données est parfois effectuée dans cet ordre plutôt que dans l'ordre alphabétique « standard » ( séquence de collation ). Les principaux écarts dans l'ordre ASCII sont :

  • Toutes les majuscules précèdent les minuscules ; par exemple, "Z" précède "a"
  • Les chiffres et de nombreux signes de ponctuation précèdent les lettres

Une commande intermédiaire convertit les majuscules en minuscules avant de comparer les valeurs ASCII.

Groupes de caractères

Caractères de contrôle

ASCII réserve les 32 premiers codes (chiffres 0 à 31 décimaux) pour les caractères de contrôle : codes initialement destinés à ne pas représenter des informations imprimables, mais plutôt à contrôler les appareils (tels que les imprimantes ) qui utilisent l'ASCII, ou à fournir des méta-informations sur les données flux tels que ceux stockés sur bande magnétique.

Par exemple, le caractère 10 représente la fonction "saut de ligne" (qui fait avancer le papier d'une imprimante), et le caractère 8 représente le "retour arrière". RFC  2822 fait référence aux caractères de contrôle qui n'incluent pas de retour chariot, de saut de ligne ou d' espace en tant que caractères de contrôle autres que les espaces. [32] À l'exception des caractères de contrôle qui prescrivent un formatage orienté ligne élémentaire, l'ASCII ne définit aucun mécanisme pour décrire la structure ou l'apparence du texte dans un document. D'autres schémas, tels que les langages de balisage , la mise en page et le formatage des pages d'adresses et des documents.

La norme ASCII d'origine n'utilisait que de courtes phrases descriptives pour chaque caractère de contrôle. L'ambiguïté que cela provoquait était parfois intentionnelle, par exemple lorsqu'un caractère serait utilisé légèrement différemment sur un lien terminal que sur un flux de données , et parfois accidentelle, par exemple avec le sens de "supprimer".

Probablement le dispositif le plus influent sur l'interprétation de ces caractères était le Teletype Model 33 ASR, qui était un terminal d'impression avec une option de lecteur/perforateur de bande de papier disponible . La bande de papier était un support très populaire pour le stockage de programmes à long terme jusqu'aux années 1980, moins coûteuse et à certains égards moins fragile que la bande magnétique. En particulier, les affectations de machine Teletype Model 33 pour les codes 17 (Control-Q, DC1, également connu sous le nom XON), 19 (Control-S, DC3, également connu sous le nom XOFF) et 127 ( Supprimer) sont devenus des normes de facto. Le modèle 33 était également remarquable pour prendre littéralement la description de Control-G (code 7, BEL, signifiant alerter l'opérateur de manière audible), car l'unité contenait une véritable cloche qu'elle sonnait lorsqu'elle recevait un caractère BEL. Parce que le dessus de touche pour la touche O montrait également un symbole de flèche vers la gauche (de ASCII-1963, qui avait ce caractère au lieu du trait de soulignement ), une utilisation non conforme du code 15 (Control-O, Shift In) interprétée comme "supprimer le caractère précédent" a également été adopté par de nombreux premiers systèmes de temps partagé, mais a finalement été négligé.

Lorsqu'un Teletype 33 ASR équipé du lecteur de bande papier automatique a reçu un Control-S (XOFF, abréviation de transmission désactivée), il a provoqué l'arrêt du lecteur de bande ; la réception de Control-Q (XON, "transmit on") a provoqué la reprise du lecteur de bande. Cette technique a été adoptée par plusieurs premiers systèmes d'exploitation informatiques en tant que signal de « prise de contact » avertissant un expéditeur d'arrêter la transmission en raison d'un débordement imminent ; il persiste à ce jour dans de nombreux systèmes en tant que technique de contrôle de sortie manuel. Sur certains systèmes, Control-S conserve sa signification mais Control-Q est remplacé par un second Control-S pour reprendre la sortie. Le 33 ASR peut également être configuré pour utiliser Control-R (DC2) et Control-T (DC4) pour démarrer et arrêter la perforation de la bande ; sur certaines unités équipées de cette fonction,le lettrage du caractère de contrôle correspondant sur le capuchon au-dessus de la lettre était TAPE etBANDE respectivement. [33]

Supprimer et retour arrière

Le télétype ne pouvait pas déplacer la tête vers l'arrière, il n'a donc pas mis de touche sur le clavier pour envoyer un BS (backspace). Au lieu de cela, il y avait une clé marquée RUB OUTqui envoyait le code 127 (DEL). Le but de cette clé était d'effacer les erreurs d'une bande de papier tapée à la main : l'opérateur devait appuyer sur un bouton sur le perforateur de bande pour la sauvegarder, puis taper l'effacement, qui a percé tous les trous et remplacé l'erreur par un caractère qui était destiné à être ignoré. [34] Les télétypes étaient couramment utilisés pour les ordinateurs moins chers de Digital Equipment Corporation , de sorte que ces systèmes devaient utiliser la clé disponible et donc le code DEL pour effacer le caractère précédent. [35] [36]Pour cette raison, les terminaux vidéo DEC (par défaut) ont envoyé le code DEL pour la touche marquée "Retour arrière" tandis que la touche marquée "Supprimer" envoyait une séquence d'échappement, tandis que de nombreux autres terminaux envoyaient BS pour la touche Retour arrière. Le pilote de terminal Unix ne pouvait utiliser qu'un seul code pour effacer le caractère précédent, celui-ci pouvait être défini sur BS ou DEL, mais pas sur les deux, ce qui entraînait une longue période d'ennui où les utilisateurs devaient le corriger en fonction du terminal qu'ils utilisaient (shells qui permettent l'édition de ligne, comme ksh , bash et zsh , comprennent les deux). L'hypothèse selon laquelle aucune clé n'a envoyé de BS a entraîné l'utilisation de Control+H à d'autres fins, telles que la commande de préfixe "help" dans GNU Emacs . [37]

Échapper

Beaucoup d'autres codes de contrôle ont reçu des significations très différentes de celles d'origine. Le caractère "échappement" (ESC, code 27), par exemple, était destiné à l'origine à permettre l'envoi d'autres caractères de contrôle sous forme de littéraux au lieu d'invoquer leur signification. C'est la même signification de "échappement" rencontrée dans les encodages d'URL, les chaînes de langage C et d'autres systèmes où certains caractères ont une signification réservée. Au fil du temps, ce sens a été coopté et a finalement été modifié. Dans l'utilisation moderne, un ESC envoyé au terminal indique généralement le début d'une séquence de commandes généralement sous la forme d'un " code d'échappement ANSI " (ou, plus correctement, un " Introducteur de séquence de contrôle "") de ECMA-48 (1972) et de ses successeurs, commençant par ESC suivi d'un caractère "[" (crochet gauche). Un ESC envoyé depuis le terminal est le plus souvent utilisé comme un caractère hors bande utilisé pour terminer une opération, comme dans le TECO et vi éditeurs de texte . dans l' interface utilisateur graphique (GUI) et fenêtrage systèmes, ESC provoque généralement une application pour interrompre son opération en cours ou à la sortie (fin) tout à fait.

Fin de ligne

L'ambiguïté inhérente de nombreux caractères de contrôle, combinée à leur utilisation historique, a créé des problèmes lors du transfert de fichiers "texte brut" entre les systèmes. Le meilleur exemple de ceci est le problème de saut de ligne sur divers systèmes d'exploitation . Les téléscripteurs exigeaient qu'une ligne de texte se termine à la fois par « Retour chariot » (qui déplace la tête d'impression au début de la ligne) et « Avance de ligne » (qui fait avancer le papier d'une ligne sans déplacer la tête d'impression). Le nom "Carriage Return" vient du fait que sur une machine à écrire manuellele chariot tenant le papier se déplaçait tandis que la position où les barres de caractères frappaient le ruban restait immobile. L'ensemble du chariot devait être poussé (retourné) vers la droite afin de positionner la marge gauche du papier pour la ligne suivante.

Les systèmes d' exploitation DEC ( OS/8 , RT-11 , RSX-11 , RSTS , TOPS-10 , etc.) utilisaient les deux caractères pour marquer la fin d'une ligne afin que le périphérique de console (à l'origine des machines Teletype ) fonctionne. Au moment où les soi-disant « TTY en verre » (appelés plus tard CRT ou terminaux) sont arrivés, la convention était si bien établie que la compatibilité descendante a nécessité la poursuite de la convention. Lorsque Gary Kildall a créé CP/M, il s'est inspiré de certaines conventions d'interface de ligne de commande utilisées dans le RT-11 de DEC . Jusqu'à l'introduction de PC DOS en 1981, IBMn'avaient aucune part à cela parce que leurs systèmes d'exploitation des années 1970 utilisaient EBCDIC au lieu d'ASCII et ils étaient orientés vers l'entrée de cartes perforées et la sortie d'imprimantes ligne sur lesquelles le concept de retour chariot n'avait aucun sens. Le PC DOS d' IBM (également commercialisé sous le nom de MS-DOS par Microsoft) a hérité de la convention parce qu'il est vaguement basé sur CP/M, [38] et Windows l'a hérité de MS-DOS.

Malheureusement, exiger deux caractères pour marquer la fin d'une ligne introduit une complexité inutile et des questions sur la façon d'interpréter chaque caractère lorsqu'il est rencontré seul. Pour simplifier les choses , les flux de données en texte brut , y compris les fichiers, sur Multics [39] utilisaient le saut de ligne (LF) seul comme fin de ligne. Les systèmes Unix et de type Unix , ainsi que les systèmes Amiga , ont adopté cette convention de Multics. D'un autre côté, le système d'exploitation Macintosh OS , Apple DOS et ProDOS utilisait uniquement le retour chariot (CR) comme terminaison de ligne; cependant, depuis qu'Apple a remplacé ces systèmes d'exploitation par le macOS basé sur Unixsystème d'exploitation, ils utilisent désormais également le saut de ligne (LF). Le Radio Shack TRS-80 utilisait également un seul CR pour terminer les lignes.

Les ordinateurs connectés à l' ARPANET comprenaient des machines exécutant des systèmes d'exploitation tels que TOPS-10 et TENEX utilisant des fins de ligne CR-LF, des machines exécutant des systèmes d'exploitation tels que Multics utilisant des fins de ligne LF et des machines exécutant des systèmes d'exploitation tels que OS/360 qui représentaient des lignes comme un nombre de caractères suivi des caractères de la ligne et qui utilisait EBCDIC plutôt qu'ASCII. Le protocole Telnet a défini un ASCII " Network Virtual Terminal" (NVT), de sorte que les connexions entre les hôtes avec des conventions de fin de ligne et des jeux de caractères différents puissent être prises en charge en transmettant un format de texte standard sur le réseau. Telnet utilisait l'ASCII avec les fins de ligne CR-LF, et les logiciels utilisant d'autres conventions traduiraient entre les conventions locales et le NVT. [40] Le File Transfer Protocol a adopté le protocole Telnet, y compris l'utilisation du Network Virtual Terminal, pour une utilisation lors de la transmission de commandes et du transfert de données dans le mode ASCII par défaut. [41] [42] Cela ajoute complexité des implémentations de ces protocoles et d'autres protocoles réseau, tels que ceux utilisés pour le courrier électronique et le World Wide Web, sur des systèmes n'utilisant pas la convention de fin de ligne CR-LF de la NVT [43].[44]

Fin de fichier/flux

Le moniteur PDP-6, [35] et son successeur PDP-10 TOPS-10, [36] utilisaient Control-Z (SUB) comme indication de fin de fichier pour l'entrée à partir d'un terminal. Certains systèmes d'exploitation tels que CP/M suivaient la longueur du fichier uniquement en unités de blocs de disque et utilisaient Control-Z pour marquer la fin du texte réel dans le fichier. [45] Pour ces raisons, EOF, ou end-of-file , a été utilisé familièrement et conventionnellement comme un acronyme à trois lettres pour Control-Z au lieu de SUBstitute. Le code de fin de texte ( ETX ), également connu sous le nom de Control-C , était inapproprié pour diverses raisons, tandis que l'utilisation de Z comme code de contrôle pour terminer un fichier est analogue à la fin de l'alphabet et constitue un outil très pratique.aide mnémotechnique . Une convention historiquement courante et toujours répandue utilise la convention de code ETX pour interrompre et arrêter un programme via un flux de données d'entrée, généralement à partir d'un clavier.

Dans la bibliothèque C et les conventions Unix , le caractère nul est utilisé pour terminer les chaînes de texte ; de telles chaînes terminées par zéro peuvent être connues en abréviation comme ASCIZ ou ASCIIZ, où ici Z signifie "zéro".

Tableau des codes de contrôle

Binaire oct déc Hex Abréviation [b] [c] [ré] Nom (1967)
1963 1965 1967
000 0000 000 0 00 NUL NUL ^@ \0 Nul
000 0001 001 1 01 SOM SOH ^A Début de cap
000 0010 002 2 02 AOD STX ^B Début du texte
000 0011 003 3 03 MOE ETX ^C Fin du texte
000 0100 004 4 04 EOT ^D Fin de transmission
000 0101 005 5 05 WRU ENQ ^E Demande
000 0110 006 6 06 RU ACK ^F Reconnaissance
000 0111 007 7 07 CLOCHE BEL ^G \a cloche
000 1000 010 8 08 FE0 BS ^H \b Retour arrière [e] [f]
000 1001 011 9 09 HT/SK HT ^I \t Onglet horizontal [g]
000 1010 012 dix 0A LF ^J \n Saut de ligne
000 1011 013 11 0B VTAB Vermont ^K \v Onglet vertical
000 1100 014 12 0C FF ^L \f Flux de formulaire
000 1101 015 13 0D RC ^M \r Retour chariot [h]
000 1110 016 14 0E ALORS ^N Sortir
000 1111 017 15 0F SI ^O Changement d'entrée
001 0000 020 16 dix DC0 DLE ^P Échappement de liaison de données
001 0001 021 17 11 DC1 ^Q Contrôle de l'appareil 1 (souvent XON )
001 0010 022 18 12 DC2 ^R Contrôle de l'appareil 2
001 0011 023 19 13 DC3 ^S Contrôle de l'appareil 3 (souvent XOFF )
001 0100 024 20 14 DC4 ^T Contrôle de l'appareil 4
001 0101 025 21 15 SE TROMPER NAK ^U Accusé de réception négatif
001 0110 026 22 16 SYNCHRONISATION SYN ^V Inactif synchrone
001 0111 027 23 17 LEM ETB ^W Bloc de fin de transmission
001 1000 030 24 18 S0 POUVEZ ^X Annuler
001 1001 031 25 19 S1 EM ^Y Fin du milieu
001 1010 032 26 1A S2 SS SOUS ^Z Remplacer
001 1011 033 27 1B S3 ESC ^[ \e[je] Échappement [j]
001 1100 034 28 1C S4 FS ^\ Séparateur de fichiers
001 1101 035 29 1D S5 SG ^] Séparateur de groupe
001 1110 036 30 1E S6 RS ^^[k] Séparateur d'enregistrements
001 1111 037 31 1F S7 nous ^_ Séparateur d'unités
111 1111 177 127 7F DEL ^? Supprimer [l] [f]

D'autres représentations peuvent être utilisées par des équipements spécialisés, par exemple des graphiques ISO 2047 ou des nombres hexadécimaux .

Caractères imprimables

Les codes 20 hex à 7E hex , connus sous le nom de 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. [m]

Le code 20 hex , le caractère " espace " , désigne l'espace entre les mots, tel qu'il est produit par la barre d'espace d'un clavier. Étant donné que le caractère espace est considéré comme un graphique invisible (plutôt qu'un caractère de contrôle) [3] : 223 [46], il est répertorié dans le tableau ci-dessous plutôt que dans la section précédente.

Le code 7F hex correspond au caractère de contrôle « delete » non imprimable (DEL) et est donc omis de ce tableau ; il est couvert dans le tableau de la section précédente. Les versions antérieures d'ASCII utilisaient la flèche vers le haut au lieu du caret (5E hex ) et la flèche gauche au lieu du trait de soulignement (5F hex ). [5] [47]

Binaire oct déc Hex Glyphe
1963 1965 1967
010 0000 040 32 20  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 /
011 0000 060 48 30 0
011 0001 061 49 31 1
011 0010 062 50 32 2
011 0011 063 51 33 3
011 0100 064 52 34 4
011 0101 065 53 35 5
011 0110 066 54 36 6
011 0111 067 55 37 7
011 1000 070 56 38 8
011 1001 071 57 39 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 ?
100 0000 100 64 40 @ ` @
100 0001 101 65 41 UNE
100 0010 102 66 42 B
100 0011 103 67 43 C
100 0100 104 68 44
100 0101 105 69 45 E
100 0110 106 70 46 F
100 0111 107 71 47 g
100 1000 110 72 48 H
100 1001 111 73 49 je
100 1010 112 74 4A J
100 1011 113 75 4B K
100 1100 114 76 4C L
100 1101 115 77 4D M
100 1110 116 78 4E N
100 1111 117 79 4F O
101 0000 120 80 50 P
101 0001 121 81 51 Q
101 0010 122 82 52 R
101 0011 123 83 53 S
101 0100 124 84 54 T
101 0101 125 85 55 U
101 0110 126 86 56 V
101 0111 127 87 57 W
101 1000 130 88 58 X
101 1001 131 89 59 Oui
101 1010 132 90 5A 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 _
110 0000 140 96 60 @ `
110 0001 141 97 61 une
110 0010 142 98 62 b
110 0011 143 99 63 c
110 0100 144 100 64
110 0101 145 101 65 e
110 0110 146 102 66 F
110 0111 147 103 67 g
110 1000 150 104 68 h
110 1001 151 105 69 je
110 1010 152 106 6A j
110 1011 153 107 6B k
110 1100 154 108 6C je
110 1101 155 109 6D m
110 1110 156 110 6E m
110 1111 157 111 6F o
111 0000 160 112 70 p
111 0001 161 113 71 q
111 0010 162 114 72 r
111 0011 163 115 73 s
111 0100 164 116 74 t
111 0101 165 117 75 vous
111 0110 166 118 76 v
111 0111 167 119 77 w
111 1000 170 120 78 X
111 1001 171 121 79 oui
111 1010 172 122 7A z
111 1011 173 123 7B {
111 1100 174 124 7C ACK ¬ |
111 1101 175 125 7D }
111 1110 176 126 7E ESC | ~

Jeu de caractères

Les points qui représentaient un caractère différent dans les versions précédentes (la version de 1963 ou le brouillon de 1965) sont encadrés. Les points attribués depuis la version 1963 mais inchangés par ailleurs sont affichés légèrement ombrés par rapport à leurs couleurs de légende.

ASCII (1977/1986)
_0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _UNE _B _C _RÉ _E _F
0_
0
NUL
0000
SOH
0001
STX
0002
ETX
0003
EOT
0004
ENQ
0005
ACK
0006
BEL
0007
BS
0008
HT
0009
BF
000A
VT
000B
FF
000C
CR
000D
SO
000E
SI
000F
1_
16
DLE
0010
DC1
0011
DC2
0012
DC3
0013
DC4
0014
NAK
0015
SYN
0016
ETB
0017
CAN
0018
EM
0019
SUB
001A
ESC
001B
FS
001C
GS
001D
RS
001E
NOUS
001F
2_
32
SP
0020
!
0021
"
0022
#
0023
0024 $
%
0025
&
0026
'
0027
(
0028
)
0029
*
002A
+
002B
,
002C
-
002D
.
002E
/
002F
3_
48
0
0030
1
0031
2
0032
3
0033
4
0034
5
0035
6
0036
7
0037
8
0038
9
0039
:
003A
;
003B
<
003C
=
003D
>
003E
?
003F
4_
64
@
0040
Un
0041
B
0042
C
0043
D
0044
E
0045
F
0046
G
0047
H
0048
je
0049
J
004A
K
004B
L
004C
M
004D
N
004E
O
004F
5_
80
P
0050
Q
0051
R
0052
S
0053
T
0054
U
0055
V
0056
W
0057
X
0058
Y
0059
Z
005A
[
005B
\
005C
]
005D
^
005E
_
005F
6_
96
`
0060
un
0061
b
0062
c
0063
d
0064
e
0065
f
0066
g
0067
h
0068
je
0069
j
006A
k
006B
l
006C
m
006D
n
006E
o
006F
7_
112
p
0070
q
0071
r
0072
s
0073
t
0074
u
0075
v
0076
avec
0077
x
0078
et
0079
z
007A
{
007B
|
007C
}
007D
~
007E
DEL
007F

  Lettre  Numéro  Ponctuation  symbole  Autre  Indéfini  Caractère changé depuis la version 1963 ou le brouillon 1965

Utilisation

L'ASCII a été utilisé pour la première fois dans le commerce en 1963 comme code de téléimprimeur à sept bits pour le réseau TWX (TeletypeWriter eXchange) d' American Telephone & Telegraph . TWX utilisait à l'origine le premier ITA2 à cinq bits , qui était également utilisé par le système de téléimprimeur Telex concurrent . Bob Bemer a introduit des fonctionnalités telles que la séquence d'échappement . [4] Son collègue britannique Hugh McGregor Ross a aidé à populariser ce travail - selon Bemer, "à tel point que le code qui allait devenir ASCII s'est d'abord appelé le code Bemer-Ross en Europe". [48] En raison de son travail étendu sur ASCII, Bemer a été appelé "le père d'ASCII".[49]

Le 11 mars 1968, le président américain Lyndon B. Johnson a exigé que tous les ordinateurs achetés par le gouvernement fédéral des États-Unis prennent en charge l'ASCII, en déclarant : [50] [51] [52]

J'ai également approuvé les recommandations du secrétaire au Commerce [ Luther H. Hodges ] concernant les normes d'enregistrement du Code standard pour l'échange d'informations sur les bandes magnétiques et les bandes papier lorsqu'elles sont utilisées dans des opérations informatiques. Tous les ordinateurs et configurations d'équipements connexes introduits dans l'inventaire du gouvernement fédéral à compter du 1er juillet 1969 doivent pouvoir utiliser le code standard pour l'échange d'informations et les formats prescrits par les normes de bande magnétique et de bande papier lorsque ces supports sont utilisés.

L'ASCII était le codage de caractères le plus courant sur le World Wide Web jusqu'en décembre 2007, lorsque le codage UTF-8 l'a dépassé ; UTF-8 est rétrocompatible avec ASCII. [53] [54] [55]

Variantes et dérivations

Au fur et à mesure que la technologie informatique se répandait dans le monde, différents organismes et sociétés de normalisation ont développé de nombreuses variantes de l'ASCII pour faciliter l'expression de langues non anglaises utilisant des alphabets romains. On pourrait classer certaines de ces variantes comme des " extensions ASCII ", bien que certains utilisent à mauvais escient ce terme pour représenter toutes les variantes, y compris celles qui ne préservent pas la carte de caractères ASCII dans la plage de 7 bits. De plus, les extensions ASCII ont également été étiquetées à tort comme ASCII.

Codes à 7 bits

Dès le début de son développement, [56] ASCII était destiné à n'être qu'une des nombreuses variantes nationales d'une norme internationale de code de caractères.

D'autres organismes internationaux de normalisation ont ratifié des codages de caractères tels que l' ISO 646 (1967) qui sont identiques ou presque identiques à l'ASCII, avec des extensions pour les caractères en dehors de l' alphabet anglais et des symboles utilisés en dehors des États-Unis, comme le symbole de la livre sterling du Royaume-Uni (£). Presque tous les pays avaient besoin d'une version adaptée de l'ASCII, car l'ASCII ne convenait qu'aux besoins des États-Unis et de quelques autres pays. Par exemple, le Canada avait sa propre version prenant en charge les caractères français.

De nombreux autres pays développés variantes de ASCII à inclure des lettres non anglaises (par exemple é , ñ , ß , Ł ), les symboles monétaires (par exemple £ , ¥ ), etc. Voir aussi YUSCII (Yougoslavie).

Il partagerait la plupart des caractères en commun, mais attribuerait d'autres caractères localement utiles à plusieurs points de code réservés à un "usage national". Cependant, les quatre années qui se sont écoulées entre la publication de l'ASCII-1963 et la première acceptation par l'ISO d'une recommandation internationale en 1967 [57] ont fait que les choix de l'ASCII pour les caractères d'utilisation nationale semblent être des normes de facto pour le monde, provoquant confusion et incompatibilité. une fois que d'autres pays ont commencé à faire leurs propres affectations à ces points de code.

ISO/IEC 646, comme ASCII, est un jeu de caractères à 7 bits. Il ne rend aucun code supplémentaire disponible, de sorte que les mêmes points de code ont codé des caractères différents dans différents pays. Les codes d'échappement ont été définis pour indiquer quelle variante nationale s'appliquait à un morceau de texte, mais ils étaient rarement utilisés, il était donc souvent impossible de savoir avec quelle variante travailler et, par conséquent, quel caractère un code représentait, et en général, le texte- les systèmes de traitement ne pouvaient de toute façon faire face qu'à une seule variante.

Étant donné que les caractères entre crochets et accolades de l'ASCII ont été attribués à des points de code « à usage national » qui ont été utilisés pour les lettres accentuées dans d'autres variantes nationales d'ISO/IEC 646, un programmeur allemand, français ou suédois, etc. utilisant sa variante nationale d'ISO /IEC 646, plutôt que ASCII, devait écrire, et donc lire, quelque chose comme

ä aÄiÜ = 'Ön'; ü

à la place de

{ a[i] = '\n'; }

Les trigraphes C ont été créés pour résoudre ce problème pour ANSI C , bien que leur introduction tardive et leur implémentation incohérente dans les compilateurs aient limité leur utilisation. De nombreux programmeurs ont gardé leurs ordinateurs sur US-ASCII, donc texte brut en suédois, etc. allemand (par exemple, par courrier électronique ou Usenet ) contenu « {,} » et des variantes similaires dans le milieu des mots, quelque chose les programmeurs ont habitué. Par exemple, un programmeur suédois envoyant un courrier à un autre programmeur lui demandant s'il devait aller déjeuner, pourrait obtenir "N{ jag har sm|rg}sar" comme réponse, qui devrait être "Nä jag har smörgåsar" signifiant "Non, j'ai sandwichs".

Au Japon et en Corée, toujours à partir des années 2020, une variante de l'ASCII est utilisée, dans laquelle la barre oblique inverse (5C hexadécimal) est rendue par ¥ (un signe Yen , au Japon) ou ₩ (un signe Won , en Corée). Cela signifie que, par exemple, le chemin du fichier C:\Users\Smith est affiché sous la forme C:¥Users¥Smith (au Japon) ou C:₩Users₩Smith (en Corée).

Codes à 8 bits

Finalement, comme les ordinateurs 8, 16 et 32 bits (et plus tard 64 bits ) ont commencé à remplacer les ordinateurs 12 , 18 et 36 bits en tant que norme, il est devenu courant d'utiliser un octet de 8 bits pour stocker chacun caractère en mémoire, offrant une opportunité pour les parents étendus de 8 bits de l'ASCII. Dans la plupart des cas, ceux-ci se sont développés comme de véritables extensions de l'ASCII, laissant le mappage de caractères d'origine intact, mais en ajoutant des définitions de caractères supplémentaires après les 128 premiers caractères (c'est-à-dire 7 bits).

Les codages incluent ISCII (Inde), VISCII (Vietnam). Bien que ces codages soient parfois appelés ASCII, le véritable ASCII n'est défini strictement que par la norme ANSI.

La plupart des premiers systèmes informatiques domestiques développaient leurs propres jeux de caractères 8 bits contenant des dessins au trait et des glyphes de jeu, et remplissaient souvent certains ou tous les caractères de contrôle de 0 à 31 avec plus de graphiques. Les ordinateurs Kaypro CP/M utilisaient les 128 caractères "supérieurs" de l'alphabet grec.

Le code PETSCII utilisé par Commodore International pour ses systèmes à 8 bits est probablement unique parmi les codes postérieurs à 1970 en ce qu'il est basé sur l'ASCII-1963, au lieu de l'ASCII-1967 plus courant, comme celui trouvé sur l' ordinateur ZX Spectrum . Les ordinateurs Atari 8 bits et les ordinateurs Galaksija utilisaient également des variantes ASCII.

L'IBM PC a défini la page de codes 437 , qui a remplacé les caractères de contrôle par des symboles graphiques tels que des smileys , et mappé des caractères graphiques supplémentaires aux 128 positions supérieures. Les systèmes d'exploitation tels que DOS ont pris en charge ces pages de codes, et les fabricants de PC IBM les ont pris en charge dans le matériel. Digital Equipment Corporation a développé le jeu de caractères multinational (DEC-MCS) pour une utilisation dans le populaire terminal VT220 comme l'une des premières extensions conçues davantage pour les langues internationales que pour les blocs graphiques. Le Macintosh a défini Mac OS Roman et Postscript ont également défini un ensemble, les deux contenant à la fois des lettres internationales et des signes de ponctuation typographiques au lieu de graphiques, plus comme des ensembles de caractères modernes.

La norme ISO/IEC 8859 (dérivée du DEC-MCS) a finalement fourni une norme que la plupart des systèmes copiaient (au moins aussi précisément qu'ils copiaient l'ASCII, mais avec de nombreuses substitutions). Une autre extension populaire conçue par Microsoft, Windows-1252 (souvent mal étiquetée comme ISO-8859-1 ), a ajouté les signes de ponctuation typographiques nécessaires pour l'impression de texte traditionnelle. ISO-8859-1, Windows-1252 et l'ASCII 7 bits d'origine étaient les codages de caractères les plus courants jusqu'en 2008, lorsque UTF-8 est devenu plus courant. [54]

ISO/IEC 4873 a introduit 32 codes de contrôle supplémentaires définis dans la plage hexadécimale 80-9F , dans le cadre de l'extension du codage ASCII 7 bits pour devenir un système 8 bits. [58]

Unicode

Unicode et le jeu de caractères universel (UCS) ISO/IEC 10646 ont une gamme beaucoup plus large de caractères et leurs diverses formes de codage ont commencé à supplanter rapidement ISO/IEC 8859 et ASCII dans de nombreux environnements. Alors que l'ASCII est limité à 128 caractères, Unicode et l'UCS prennent en charge davantage de caractères en séparant les concepts d'identification unique (à l'aide de nombres naturels appelés points de code ) et d'encodage (aux formats binaires 8, 16 ou 32 bits, appelés UTF-8 , UTF-16 et UTF-32 ).

L'ASCII a été incorporé dans le jeu de caractères Unicode (1991) en tant que 128 premiers symboles, de sorte que les caractères ASCII à 7 bits ont les mêmes codes numériques dans les deux jeux. Cela permet à UTF-8 d'être rétrocompatible avec l'ASCII 7 bits, car un fichier UTF-8 contenant uniquement des caractères ASCII est identique à un fichier ASCII contenant la même séquence de caractères. Plus important encore, la compatibilité ascendante est assurée en tant que logiciel qui reconnaît uniquement les caractères ASCII 7 bits comme spéciaux et ne modifie pas les octets avec le jeu de bits le plus élevé (comme cela est souvent fait pour prendre en charge les extensions ASCII 8 bits telles que ISO-8859-1). conservera les données UTF-8 inchangées. [59]

Voir également

Remarques

  1. ^ a b c d e Les 128 caractères du jeu de caractères ASCII à 7 bits sont divisés en huit groupes de 16 caractères appelés bâtons 0 à 7, associés aux trois bits les plus significatifs . [14] Selon la représentation horizontale ou verticale de la carte des caractères, les bâtons correspondent aux lignes ou aux colonnes du tableau.
  2. ^ Les caractères Unicode de la zone U+2400 à U+2421 réservés à la représentation des caractères de contrôle lorsqu'il est nécessaire de les imprimer ou de les afficher plutôt que de les faire remplir leur fonction prévue. Certains navigateurs peuvent ne pas les afficher correctement.
  3. ^ La notation Caret est souvent utilisée pour représenter les caractères de contrôle sur un terminal. Sur la plupart des terminaux de texte, maintenir enfoncée laCtrltouche tout en tapant le deuxième caractère tapera le caractère de contrôle. Parfois, la touche majuscule n'est pas nécessaire, par exemple, elle^@peut être saisie simplement avec Ctrl et 2.
  4. ^ Séquences d'échappement de caractèresdans le langage de programmation C et de nombreux autres langages influencés par celui-ci, tels que Java et Perl (bien que toutes les implémentations ne prennent pas nécessairement en charge toutes les séquences d'échappement).
  5. ^ Lecaractère de retour arrière peut également être saisi en appuyant sur la← Backspacetouche sur certains systèmes.
  6. ^ a b L'ambiguïté de Backspace est due aux premiers terminaux conçus en supposant que l'utilisation principale du clavier serait de perforer manuellement une bande de papier sans être connecté à un ordinateur. Pour supprimer le caractère précédent, il fallait sauvegarder le poinçon de bande de papier, qui pour des raisons mécaniques et de simplicité était un bouton sur le poinçon lui-même et non sur le clavier, puis taper le caractère d'effacement. Ils ont donc placé une clé produisant un effacement à l'emplacement utilisé sur les machines à écrire pour le retour arrière. Lorsque les systèmes utilisaient ces terminaux et fournissaient l'édition en ligne de commande, ils devaient utiliser le code "rubout" pour effectuer un retour arrière et n'interprétaient souvent pas le caractère de retour arrière (ils pouvaient faire écho "^H" pour le retour arrière). D'autres terminaux non conçus pour la bande de papier faisaient que la clé à cet emplacement produisait un retour arrière, et les systèmes conçus pour ceux-ci utilisaient ce caractère pour sauvegarder. Étant donné que le code de suppression produisait souvent un effet de retour arrière, cela obligeait également les fabricants de terminaux à faire n'importe quelle Deletetouche produit autre chose que le caractère Supprimer.
  7. ^ Le caractère Tab peut également être saisi en appuyant sur laTab ↹touche sur la plupart des systèmes.
  8. ^ Lecaractère de retour chariot peut également être saisi en appuyant sur latouche↵ EnterouReturnsur la plupart des systèmes.
  9. ^ La\e séquence d'échappement ne fait pas partie de l' ISO C et de nombreuses autres spécifications de langage. Cependant, il est compris par plusieurs compilateurs, dont GCC .
  10. ^ Le caractère d'échappement peut également être saisi en appuyant sur laEsctouche sur certains systèmes.
  11. ^ ^^ signifieCtrl+^(en appuyant sur les touches "Ctrl" et caret ).
  12. ^ Le caractère Supprimer peut parfois être saisi en appuyant sur la← Backspacetouche sur certains systèmes.
  13. ^ Imprimé, les caractères sont :
     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

Les références

  1. ^ ANSI (1975-12-01). ISO-IR-006 : Jeu de caractères graphiques ASCII (PDF) . ITSCJ/ IPSJ .
  2. ^ un b "Ensembles de caractères" . Internet Assigned Numbers Authority (IANA) . 2007-05-14 . Récupéré le 25-08-2019 .
  3. ^ A b c d e f g h i j k l m n o p q r de Mackenzie, Charles E. (1980). Jeux de caractères codés, historique et développement (PDF) . La série de programmation de systèmes (1 éd.). Addison-Wesley Publishing Company, Inc. pp. 6, 66, 211, 215, 217, 220, 223, 228, 236-238, 243-245, 247-253, 423, 425-428, 435-439. ISBN  978-0-201-14460-4. LCCN  77-90165 . Archivé (PDF) à partir de l'original le 26 mai 2016 . Récupéré le 25 août 2019 .
  4. ^ un b Brandel, Mary (1999-07-06). "1963 : Les débuts de l'ASCII" . CNN . Archivé de l'original le 2013-06-17 . Récupéré le 2008-04-14 .
  5. ^ A b c d "code standard américain pour l' échange d' information, ASA X3.4-1963" . Association américaine de normalisation (ASA). 1963-06-17 . Récupéré le 06/06/2020 .
  6. ^ A b c "USA Standard Code for Information Interchange, USAS X3.4-1967". Institut de normalisation des États-Unis d'Amérique (USASI). 1967-07-07. Citer le journal nécessite |journal=( aide )
  7. ^ Jennings, Thomas Daniel (2016-04-20) [1999]. « Une histoire annotée de certains codes de caractères ou ASCII : American Standard Code for Information Infiltration » . Recherche sensible (SR-IX) . Récupéré le 08/03/2020 .
  8. ^ A b c "Norme nationale américaine pour les systèmes d' information - jeux de caractères - 7 bits code Norme nationale américaine pour l' échange d' information (ASCII 7 bits), ANSI X3.4-1986". Institut national américain de normalisation (ANSI). 1986-03-26. Citer le journal nécessite |journal=( aide )
  9. ^ Vint Cerf (1969-10-16). Format ASCII pour l'échange réseau . IETF . doi : 10.17487/RFC0020 . RFC 20 .
  10. ^ Barry Leiba (2015-01-12). "Classification correcte de la RFC 20 (format ASCII) à la norme Internet" . IETF .
  11. ^ Shirley, R. (août 2007), Glossaire de la sécurité Internet, version 2 , RFC 4949 , archivé à partir de l'original le 13/06/2016 , récupéré le 13/06/2016 
  12. ^ Maini, Anil Kumar (2007). Électronique numérique : principes, dispositifs et applications . John Wiley et fils . p. 28. ISBN 978-0-470-03214-5. De plus, il définit des codes pour 33 caractères de contrôle non imprimables, pour la plupart obsolètes, qui affectent la façon dont le texte est traité.
  13. ^ Bukstein, Ed (juillet 1964). "Codes informatiques binaires et ASCII" . Monde de l'électronique . 72 (1) : 28-29. Archivé de l'original le 03/03/2016 . Récupéré le 2016-05-22 .
  14. ^ A b c d e f Bemer, Robert William (1980). "Chapitre 1 : À l'intérieur de l'ASCII" (PDF) . Logiciel à usage général . Le meilleur de l'âge de l'interface. 2 . Portland, OR, USA : dilithium Press. p. 1–50. ISBN  978-0-918398-37-6. LCCN  79-67462 . Archivé de l'original le 2016-08-27 . Récupéré le 2016-08-27 , de:
    • Bemer, Robert William (mai 1978). "À l'intérieur de l'ASCII - Partie I". Âge de l'interface . 3 (5) : 96-102.
    • Bemer, Robert William (juin 1978). "À l'intérieur de l'ASCII - Partie II". Âge de l'interface . 3 (6) : 64-74.
    • Bemer, Robert William (juillet 1978). "À l'intérieur de l'ASCII - Partie III". Âge de l'interface . 3 (7) : 80-87.
  15. ^ Bref rapport : Réunion du groupe de travail du CCITT sur le nouvel alphabet télégraphique, 13-15 mai 1963.
  16. ^ Rapport de l'ISO/TC/97/SC 2 – Réunion du 29 au 31 octobre 1963.
  17. ^ Rapport sur le groupe de travail X3.2.4, 11 juin 1963, Pentagone Building, Washington, DC.
  18. ^ Rapport de la réunion n° 8, Groupe de travail X3.2.4, 17 et 18 décembre 1963
  19. ^ A b c hiver, Dik T. (2010) [2003]. "Normes américaines et internationales : ASCII" . Archivé de l'original le 2010-01-16.
  20. ^ A b c d e f g Salste, Tuomas (Janvier 2016). "Jeux de caractères 7 bits : Révisions de l'ASCII" . Aivosto Oy. urn:nbn:fi-fe201201011004 . Archivé de l'original le 2016-06-13 . Récupéré le 13/06/2016 .
  21. ^ "Informations". Scientific American (édition spéciale). 215 (3). Septembre 1966. JSTOR e24931041 . 
  22. ^ Korpela, Jukka K. (2014-03-14) [2006-06-07]. Unicode expliqué – Internationaliser les documents, les programmes et les sites Web (2e version de la 1re éd.). O'Reilly Media, Inc. p. 118. ISBN 978-0-596-10121-3.
  23. ^ ANSI INCITS 4-1986 (R2007): Norme nationale américaine pour les systèmes d'information - Jeux de caractères codés - Code standard national américain 7 bits pour l'échange d'informations (7 bits ASCII) (PDF) , 2007 [1986], archivé (PDF) de l'original le 2014-02-07 , récupéré le 2016-06-12
  24. ^ "INCITS 4-1986 [R2012] : Systèmes d'information - Jeux de caractères codés - Code standard national américain 7 bits pour l'échange d'informations (7 bits ASCII)" . 2012-06-15. Archivé de l'original le 2020-02-28 . Récupéré le 2020-02-28 .
  25. ^ "INCITS 4-1986 [R2017] : Systèmes d'information - Jeux de caractères codés - Code standard national américain 7 bits pour l'échange d'informations (7 bits ASCII)" . 2017-11-02 [2017-06-09]. Archivé de l'original le 2020-02-28 . Récupéré le 2020-02-28 .
  26. ^ Séquençage des bits du code standard national américain pour l'échange d'informations dans la transmission de données série par bits , American National Standards Institute (ANSI), 1966, X3.15-1966
  27. ^ "BruXy: Communication Radio Télétype" . 2005-10-10. Archivé de l'original le 2016-04-12 . Récupéré le 09/05/2016 . Le code transmis utilise l'alphabet télégraphique international n° 2 (ITA-2) qui a été introduit par le CCITT en 1924.
  28. ^ un b Smith, Gil (2001). "Codes de communication de télétype" (PDF) . Baudot.net. Archivé (PDF) de l'original le 2008-08-20 . Récupéré le 2008-07-11 .
  29. ^ Sawyer, Stanley A.; Krantz, Steven George (1995). Une amorce TeX pour les scientifiques . Presse CRC, LLC . p. 13. bibcode : 1995tps..book ..... S . ISBN 978-0-8493-7159-2. Archivé de l'original le 2016-12-22 . Consulté le 29/10/2016 .
  30. ^ Savard, John JG "Claviers d'ordinateur" . Archivé de l'original le 2014-09-24 . Récupéré le 2014-08-24 .
  31. ^ "Définition ASCIIbétique" . Revue PC . Archivé de l'original le 2013-03-09 . Récupéré le 2008-04-14 .
  32. ^ Resnick, P. (Avril 2001), Internet Message Format , RFC 2822 , archivé à partir de l'original le 2016-06-13 , récupéré 2016-06-13  (NB. NON-WS-CTL.)
  33. ^ McConnell, Robert; Haynes, James; Warren, Richard. "Comprendre les codes ASCII" . Archivé de l'original le 2014-02-27 . Récupéré le 2014-05-11 .
  34. ^ Barry Margolin (2014-05-29). "Re: historique de l'éditeur et du traitement de texte (était: Re: RTF pour emacs)" . help-gnu-emacs (liste de diffusion). Archivé de l'original le 2014-07-14 . Récupéré le 2014-07-11 .
  35. ^ un b "Manuel du système de multiprogrammation PDP-6" (PDF) . Société d'équipement numérique (DEC). 1965. p. 43. Archivé (PDF) de l'original le 2014-07-14 . Récupéré le 2014-07-10 .
  36. ^ un b "Manuel de référence PDP-10, Livre 3, Communiquer avec le moniteur" (PDF) . Société d'équipement numérique (DEC). 1969. p. 5-5. Archivé (PDF) de l'original le 2011-11-15 . Récupéré le 2014-07-10 .
  37. ^ "Aide - Manuel GNU Emacs" . Archivé de l'original le 2018-07-11 . Récupéré le 11/07/2018 .
  38. ^ Tim Paterson (2007-08-08). « Le DOS est-il une arnaque de CP/M ? » . Le radotage de DosMan . Archivé de l'original le 2018-04-20 . Récupéré le 2018-04-19 .
  39. ^ Ossanna, JF ; Saltzer, JH (17-19 novembre 1970). « Problèmes d'ingénierie technique et humaine lors de la connexion de terminaux à un système à temps partagé » (PDF) . Actes de la conférence informatique conjointe d'automne du 17 au 19 novembre 1970 (FJCC) . p. 357 : Presse AFIPS . p. 355-362. Archivé (PDF) de l'original le 2012-08-19 . Récupéré le 2013-01-29 . L'utilisation d'une fonction "nouvelle ligne" (retour chariot et saut de ligne combinés) est plus simple pour l'homme et la machine que d'exiger les deux fonctions pour démarrer une nouvelle ligne ; la norme nationale américaine X3.4-1968 permet au code de saut de ligne de porter la signification de nouvelle ligne.Maintenance CS1 : emplacement ( lien )
  40. ^ O'Sullivan, T. (1971-05-19), TELNET Protocol , Internet Engineering Task Force (IETF), pp. 4-5, RFC 158 , archivé à partir de l'original le 2016-06-13 , récupéré 2013-01 -28 
  41. ^ Neigus, Nancy J. (1973-08-12), File Transfer Protocol , Internet Engineering Task Force (IETF), RFC 542 , archivé à partir de l'original le 2016-06-13 , récupéré 2013-01-28 
  42. ^ Postel, Jon (juin 1980), File Transfer Protocol , Internet Engineering Task Force (IETF), RFC 765 , archivé à partir de l'original le 2016-06-13 , récupéré 2013-01-28 
  43. ^ "Plan de traduction EOL pour Mercurial" . Mercuriel. Archivé de l'original le 2016-06-16 . Récupéré le 2017-06-24 .
  44. ^ Bernstein, Daniel J. " LFs nus dans SMTP " . Archivé de l'original le 2011-10-29 . Récupéré le 2013-01-28 .
  45. ^ Guide d'interface CP/M 1.4 (PDF) . Recherche numérique . 1978. p. 10. Archivé (PDF) de l'original le 2019-05-29 . Récupéré le 2017-10-07 .
  46. ^ Cerf, Vinton Gray (1969-10-16), format ASCII pour Network Interchange , Network Working Group, RFC 20 , archivé à partir de l'original le 2016-06-13 , récupéré 2016-06-13 (NB. Libellé presque identique à USAS X3.4-1968 à l' exception de l'intro.)
  47. ^ Haynes, Jim (2015-01-13). "Première main : le Tchad est notre produit le plus important : la mémoire d'un ingénieur de Teletype Corporation" . Wiki d'histoire de l'ingénierie et de la technologie (ETHW). Archivé de l'original le 2016-10-31 . Récupéré le 2016-10-31 . Il y a eu le changement de 1961 ASCII à 1968 ASCII. Certains langages informatiques utilisaient des caractères en 1961 ASCII tels que la flèche vers le haut et la flèche vers la gauche. Ces caractères ont disparu de 1968 ASCII. Nous avons travaillé avec Fred Mocking, qui était maintenant dans les ventes chez Teletype , sur un cylindre type qui compromettrait les caractères changeants afin que les significations de l'ASCII de 1961 ne soient pas totalement perdues. Le caractère de soulignement a été fait plutôt en forme de coin afin qu'il puisse également servir de flèche gauche.
  48. ^ Bemer, Robert William . "Bemer rencontre l'Europe (normes informatiques) - Vignettes d'histoire informatique" . Trailing-edge.com. Archivé de l'original le 2013-10-17 . Récupéré le 2008-04-14 .(NB. Bemer était employé chez IBM à cette époque.)
  49. ^ "Robert William Bemer : Biographie" . 2013-03-09. Archivé de l'original le 2016-06-16.
  50. ^ Johnson, Lyndon Baines (1968-03-11). "Mémorandum approuvant l'adoption par le gouvernement fédéral d'un code standard pour l'échange d'informations" . Le projet de la présidence américaine. Archivé de l'original le 2007-09-14 . Récupéré le 2008-04-14 .
  51. ^ Richard S. Shuford (1996-12-20). « Re : Début de l'histoire de l'ASCII ? » . Groupe de discussionalt.folklore.computers . Usenet : [email protected] . 
  52. ^ Folts, Harold C.; Karp, Harry, éd. (1982-02-01). Compilation des normes de communication de données (2e édition révisée). ISBN McGraw-Hill Inc.  978-0-07-021457-6.
  53. ^ Dubost, Karl (2008-05-06). "Croissance UTF-8 sur le Web" . Blogue du W3C . Consortium du World Wide Web . Archivé de l'original le 2016-06-16 . Récupéré le 2010-08-15 .
  54. ^ un b Davis, Marque (2008-05-05). "Passer à Unicode 5.1" . Blog officiel de Google . Archivé de l'original le 2016-06-16 . Récupéré le 2010-08-15 .
  55. ^ Davis, Marc (2010-01-28). "Unicode près de 50% du web" . Blog officiel de Google . Archivé de l'original le 2016-06-16 . Récupéré le 2010-08-15 .
  56. ^ "Critères spécifiques", pièce jointe à la note de RW Reach, "Réunion X3-2 - 14 et 15 septembre", 18 septembre 1961
  57. ^ Maréchal, R. (1967-12-22), ISO/TC 97 – Ordinateurs et traitement de l'information : acceptation du projet de recommandation ISO n° 1052
  58. ^ Le Consortium Unicode (2006-10-27). "Chapitre 13 : Zones spéciales et caractères de format" (PDF) . Dans Allen, Julie D. (éd.). La norme Unicode, version 5.0 . Upper Saddle River, New Jersey, États-Unis : Addison-Wesley Professional . p. 314. ISBN  978-0-321-48091-0. Récupéré le 13/03/2015 .
  59. ^ "utf-8(7) – page de manuel Linux" . Man7.org. 2014-02-26. Archivé de l'original le 2014-04-22 . Récupéré le 2014-04-21 .

Lectures complémentaires

Liens externes