Charset/Ascii
L'American Standard Code for Information Interchange (Code américain normalisé pour l'échange d'information), plus connu sous l'acronyme ASCII est une norme de codage de caractères en informatique ancienne et connue pour son influence incontournable sur les codages de caractères qui lui ont succédé. Elle était la plus largement compatible pour ce qui est des caractères latins non accentués.
ASCII contient les caractères nécessaires pour écrire en anglais. Les caractères accentués sont fournis par d'autres normes, comme aujourd'hui, l'Unicode. Le jeu de caractères codés ASCII est le principal système qui a permis l'échange de textes en anglais à un niveau mondial, limitant ainsi l'usage des langues locales au travers d'extensions régionales.
L'ASCII est une des variantes de l'ISO/CEI 646. Il est inclus dans plusieurs dizaines de normes et standards augmentant les caractères disponibles ou extensions (ASCII étendu) Celles-ci peuvent être régionales (ISO/CEI 8859), nationales (GB 18030) ou internationales (ISO 2022, ISO/CEI 10646 ou Unicode). Avec l'avènement de la mondialisation et de l'internationalisation des systèmes d'information, les limitations de l'ASCII ne sont plus acceptées que dans des domaines très techniques qui requirent la compatibilité avec des protocoles ou systèmes anciens. Malheureusement, l'ASCII n'a donné naissance qu'à des normes de codage incompatibles entre elles.
Dans la norme Unicode, le standard ASCII est défini sous le nom de « C0 Controls and Basic Latin ».
Histoire
Avant la standardisation, de nombreux codages de caractères incompatibles entre eux existaient[1].
En 1960, l'ISO a créé le technical committee on computers and information processing[2]. Il a été divisé en six groupes de travail.
- Working Group A: Glossary
- Working Group B: Character Sets and Coding
- Working Group C: Character Recognition
- Working Group D: Input and Output Media
- Working Group E: Programming Languages
- Working Group F: Digital Data Transmission
L'American Standards Association était chargé du standard des États-Unis.
L'ANSI 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.
La liste des caractères à considérer et leur position ont été débattues[3].
Elle a été inventée par l'américain Bob Bemer en 1961.
En 1961, le DoD met au point un code standard de transmission de donnée sur 8 bits[4]. 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.
Auparavant, d'autres standards étaient utilisés notamment sur les cartes perforées.
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.
Principes
L'ASCII définit seulement 128 caractères numérotés de 0 à 127 et codés en binaire de 0000000 à 1111111. Sept bits suffisent donc pour représenter un caractère codé en ASCII. Toutefois, les ordinateurs travaillant presque tous sur un multiple de huit bits (multiple d'un octet) depuis les années 1970, chaque caractère d'un texte en ASCII est souvent stocké dans un octet dont le huitième bit est 0. Aujourd'hui encore, certains systèmes de messagerie électronique et de SMS fonctionnent avec des bytes ou multiplet 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. Les autres caractères sont les chiffres arabes, les lettres latines majuscules et minuscules sans accent et quelques symboles de ponctuation.
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 (cf wikt:en:Appendix:English words with diacritics).
Limitations
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 ou ces signes sont dans un bloc disjoint des autres symboles similaires, se trouvant pour la plupart codés à partir de U+2000[5].
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-monooctets, 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 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 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, il est nécessaire d'indiquer l'encodage à l'extérieur du flot.
Les standards ISO 2022 ont l'inconvénient d'être contextuels. Il se peut que des logiciels utilisant certains algorithmes de recherche manquent d'interopérabilité à cet égard.
Les formes de codage définies par le standard Unicode ont l'inconvénient de la présence éventuelle de la fonctionnalité d'indicateur d'encodage en début de flot, qui le cas échéant est introduit par le caractère Byte Order Mark. Certains logiciels anciens ne sont pas compatibles avec la présence de ces trois octets, et ne pourront pas l'être en raison de la complexité conceptuelle que représente le fait de traiter ces trois octets. En particulier, certaines opérations deviennent plus complexes comme la concaténation de chaînes.
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
Note: ne pas confondre USASI X3.4-1968 ou ANSI X3.4-1968 et ANSI X3.4:1986
Normes définissant ou ayant défini ce système de codage des caractères:
- Les 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); ne normalisait pas encore toutes les positions.
- USASI X3.4-1968, (renommé rétroactivement ANSI X3.4-1968); 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
La désignation US-ASCII ou ASCII é-u, ASCII des États-Unis est un mix 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 646
- ceux qui l'augmentent, dits extensions
Alias
En juin 1992, le RFC et la chambre d'enregistrement de jeux de caractères Internet Assigned Numbers Authority[6] ont reconnu les alias insensibles à la casse suivants convenables pour l'utilisation dans des protocoles internet :
L'IANA promeut plus particulièrement la dénomination « US-ASCII » pour Internet.
Variantes
ASCII a donné naissance à certaines variantes de l’ASCII qui conservent la plupart des caractères mais en remplacent certains. Dès lors, il ne s’agit plus d’ASCII à strictement parler.
Huitième bit et augmentations
ASCII étendu 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.
Extensions mono-octets
En particulier, beaucoup de pages de codes étendent l'ASCII en utilisant le huitième bit pour définir des caractères numérotés de 128 à 255. La norme ISO/CEI 8859 fournit des extensions pour diverses langues. Par exemple, l’ISO 8859-1, aussi appelée Latin-1, étend l’ASCII avec les caractères accentués utiles aux langues originaires d’Europe occidentale comme le français ou l’allemand.
Par abus de langage, on appelle souvent « ASCII » des normes qui étendent ASCII, mais qui ne sont pas compatibles entre elles (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 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 bien identifier ASCII, et pas 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 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.
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).
Parmi les nombreuses extensions 8 bits de l'ASCII, le Multinational Character Set créé par Digital Equipment Corporation pour le terminal informatique VT220 est considéré comme à la fois l'ancêtre de l'ISO 8859-1 et de l'Unicode[7].
Influence
L'ASCII a eu une influence importante dans le monde informatique. En particulier il a pendant 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.
Description
Table des 128 caractères ASCII
Dans la table suivante, les 33 caractères de contrôle (codes 0 à 31 et 127) sont présentés avec leur nom en anglais suivi d'une traduction entre parenthèses.
| Code en base | Caractère | Signification | |||
|---|---|---|---|---|---|
| Decimal | Octal | Hexa | Binaire | ||
| 0 | 0 | 00 | 0000000 | NUL | Null (nul) |
| 1 | 01 | 01 | 0000001 | SOH | Start of Header (début d'en-tête) |
| 2 | 02 | 02 | 0000010 | STX | Start of Text (début du texte) |
| 3 | 03 | 03 | 0000011 | ETX | End of Text (fin du texte) |
| 4 | 04 | 04 | 0000100 | EOT | End of Transmission (fin de transmission) |
| 5 | 05 | 05 | 0000101 | ENQ | Enquiry (End of Line) (demande, fin de ligne) |
| 6 | 06 | 06 | 0000110 | ACK | Acknowledge (accusé de réception) |
| 7 | 07 | 07 | 0000111 | BEL | Bell (caractère d'appel) |
| 8 | 010 | 08 | 0001000 | BS | Backspace (espacement arrière) |
| 9 | 011 | 09 | 0001001 | HT | Horizontal Tab (tabulation horizontale) |
| 10 | 012 | 0A | 0001010 | LF | Line Feed (saut de ligne) |
| 11 | 013 | 0B | 0001011 | VT | Vertical Tab (tabulation verticale) |
| 12 | 014 | 0C | 0001100 | FF | Form Feed (saut de page) |
| 13 | 015 | 0D | 0001101 | CR | Carriage Return (retour chariot) |
| 14 | 016 | 0E | 0001110 | SO | Shift Out (fin d'extension) |
| 15 | 017 | 0F | 0001111 | SI | Shift In (démarrage d'extension) |
| 16 | 020 | 10 | 0010000 | DLE | Data Link Escape |
| 17 | 021 | 11 | 0010001 | DC1 | Device Control 1 à 4 (DC1 et DC3 sont généralementutilisés pour coder XON et XOFF dans un canal de communication duplex) |
| 18 | 022 | 12 | 0010010 | DC2 | |
| 19 | 023 | 13 | 0010011 | DC3 | |
| 20 | 024 | 14 | 0010100 | DC4 | |
| 21 | 025 | 15 | 0010101 | NAK | Negative Acknowledge (accusé de réception négatif) |
| 22 | 026 | 16 | 0010110 | SYN | Synchronous Idle |
| 23 | 027 | 17 | 0010111 | ETB | End of Transmission Block (fin du bloc de transmission) |
| 24 | 030 | 18 | 0011000 | CAN | Cancel (annulation) |
| 25 | 031 | 19 | 0011001 | EM | End of Medium (fin de support) |
| 26 | 032 | 1A | 0011010 | SUB | Substitute (substitution) |
| 27 | 033 | 1B | 0011011 | ESC | Escape (échappement) |
| 28 | 034 | 1C | 0011100 | FS | File Separator (séparateur de fichier) |
| 29 | 035 | 1D | 0011101 | GS | Group Separator (séparateur de groupe) |
| 30 | 036 | 1E | 0011110 | RS | Record Separator (séparateur d'enregistrement) |
| 31 | 037 | 1F | 0011111 | US | Unit Separator (séparateur d'unité) |
| 32 | 040 | 20 | 0100000 | SP | Espace (Space en anglais) |
| 33 | 041 | 21 | 0100001 | ! | Point d'exclamation |
| 34 | 042 | 22 | 0100010 | " | Guillemet droit |
| 35 | 043 | 23 | 0100011 | # | Croisillon ou dièse ou signe numéro |
| 36 | 044 | 24 | 0100100 | $ | Dollar |
| 37 | 045 | 25 | 0100101 | % | Pourcent |
| 38 | 046 | 26 | 0100110 | & | Esperluette ou perluète[8] |
| 39 | 047 | 27 | 0100111 | ' | Apostrophe ou guillemet fermant simple ou accent aigu[9] |
| 40 | 050 | 28 | 0101000 | ( | Parenthèse ouvrante |
| 41 | 051 | 29 | 0101001 | ) | Parenthèse fermante |
| 42 | 052 | 2A | 0101010 | * | Astérisque |
| 43 | 053 | 2B | 0101011 | + | Plus |
| 44 | 054 | 2C | 0101100 | , | Virgule |
| 45 | 055 | 2D | 0101101 | - | Moins ou tiret[8] ou trait d'union |
| 46 | 056 | 2E | 0101110 | . | Point |
| 47 | 057 | 2F | 0101111 | / | Barre oblique (Slash en anglais) |
| 48 | 060 | 30 | 0110000 | 0 | Le chiffre zéro |
| 49 | 061 | 31 | 0110001 | 1 | Le chiffre un |
| 50 | 062 | 32 | 0110010 | 2 | Le chiffre deux |
| 51 | 063 | 33 | 0110011 | 3 | Le chiffre trois |
| 52 | 064 | 34 | 0110100 | 4 | Le chiffre quatre |
| 53 | 065 | 35 | 0110101 | 5 | Le chiffre cinq |
| 54 | 066 | 36 | 0110110 | 6 | Le chiffre six |
| 55 | 067 | 37 | 0110111 | 7 | Le chiffre sept |
| 56 | 070 | 38 | 0111000 | 8 | Le chiffre huit |
| 57 | 071 | 39 | 0111001 | 9 | Le chiffre neuf |
| 58 | 072 | 3A | 0111010 | : | Deux-points |
| 59 | 073 | 3B | 0111011 | ; | Point-virgule |
| 60 | 074 | 3C | 0111100 | < | Inférieur |
| 61 | 075 | 3D | 0111101 | = | Égal |
| 62 | 076 | 3E | 0111110 | > | Supérieur |
| 63 | 077 | 3F | 0111111 | ? | Point d'interrogation |
| 64 | 0100 | 40 | 1000000 | @ | Arobace ou arobase ou A commercial[8] |
| 65 | 0101 | 41 | 1000001 | A | |
| 66 | 0102 | 42 | 1000010 | B | |
| 67 | 0103 | 43 | 1000011 | C | |
| 68 | 0104 | 44 | 1000100 | D | |
| 69 | 0105 | 45 | 1000101 | E | |
| 70 | 0106 | 46 | 1000110 | F | |
| 71 | 0107 | 47 | 1000111 | G | |
| 72 | 0110 | 48 | 1001000 | H | |
| 73 | 0111 | 49 | 1001001 | I | |
| 74 | 0112 | 4A | 1001010 | J | |
| 75 | 0113 | 4B | 1001011 | K | |
| 76 | 0114 | 4C | 1001100 | L | |
| 77 | 0115 | 4D | 1001101 | M | |
| 78 | 0116 | 4E | 1001110 | N | |
| 79 | 0117 | 4F | 1001111 | O | |
| 80 | 0120 | 50 | 1010000 | P | |
| 81 | 0121 | 51 | 1010001 | Q | |
| 82 | 0122 | 52 | 1010010 | R | |
| 83 | 0123 | 53 | 1010011 | S | |
| 84 | 0124 | 54 | 1010100 | T | |
| 85 | 0125 | 55 | 1010101 | U | |
| 86 | 0126 | 56 | 1010110 | V | |
| 87 | 0127 | 57 | 1010111 | W | |
| 88 | 0130 | 58 | 1011000 | X | |
| 89 | 0131 | 59 | 1011001 | Y | |
| 90 | 0132 | 5A | 1011010 | Z | |
| 91 | 0133 | 5B | 1011011 | [ | Crochet ouvrant |
| 92 | 0134 | 5C | 1011100 | \ | Barre oblique inversée (backslash ou antislash en anglais) |
| 93 | 0135 | 5D | 1011101 | ] | Crochet fermant |
| 94 | 0136 | 5E | 1011110 | ^ | Accent circonflexe (avec chasse) |
| 95 | 0137 | 5F | 1011111 | _ | Tiret bas ou trait bas[8] ou souligné (underscore en anglais) |
| 96 | 0140 | 60 | 1100000 | ` | Accent grave (avec chasse)[10] |
| 97 | 0141 | 61 | 1100001 | a | |
| 98 | 0142 | 62 | 1100010 | b | |
| 99 | 0143 | 63 | 1100011 | c | |
| 100 | 0144 | 64 | 1100100 | d | |
| 101 | 0145 | 65 | 1100101 | e | |
| 102 | 0146 | 66 | 1100110 | f | |
| 103 | 0147 | 67 | 1100111 | g | |
| 104 | 0150 | 68 | 1101000 | h | |
| 105 | 0151 | 69 | 1101001 | i | |
| 106 | 0152 | 6A | 1101010 | j | |
| 107 | 0153 | 6B | 1101011 | k | |
| 108 | 0154 | 6C | 1101100 | l | |
| 109 | 0155 | 6D | 1101101 | m | |
| 110 | 0156 | 6E | 1101110 | n | |
| 111 | 0157 | 6F | 1101111 | o | |
| 112 | 0160 | 70 | 1110000 | p | |
| 113 | 0161 | 71 | 1110001 | q | |
| 114 | 0162 | 72 | 1110010 | r | |
| 115 | 0163 | 73 | 1110011 | s | |
| 116 | 0164 | 74 | 1110100 | t | |
| 117 | 0165 | 75 | 1110101 | u | |
| 118 | 0166 | 76 | 1110110 | v | |
| 119 | 0167 | 77 | 1110111 | w | |
| 120 | 0170 | 78 | 1111000 | x | |
| 121 | 0171 | 79 | 1111001 | y | |
| 122 | 0172 | 7A | 1111010 | z | |
| 123 | 0173 | 7B | 1111011 | { | Accolade ouvrante |
| 124 | 0174 | 7C | 1111100 | | | Barre verticale |
| 125 | 0175 | 7D | 1111101 | } | Accolade fermante |
| 126 | 0176 | 7E | 1111110 | ~ | Tilde |
| 127 | 0177 | 7F | 1111111 | DEL | Delete (effacement) |
On peut aussi présenter la table des caractères ASCII sous cette forme plus condensée qui met en évidence une organisation fondée sur la base 16.
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 000 | NUL
|
SOH
|
STX
|
ETX
|
EOT
|
ENQ
|
ACK
|
BEL
|
BS
|
HT
|
LF
|
VT
|
FF
|
CR
|
SO
|
SI
|
| 001 | DLE
|
DC1
|
DC2
|
DC3
|
DC4
|
NAK
|
SYN
|
ETB
|
CAN
|
EM
|
SUB
|
ESC
|
FS
|
GS
|
RS
|
US
|
| 002 | !
|
"
|
#
|
$
|
%
|
&
|
'
|
(
|
)
|
*
|
+
|
,
|
-
|
.
|
/
| |
| 003 | 0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
:
|
;
|
<
|
signe égal à
|
>
|
?
|
| 004 | @
|
A
|
B
|
C
|
D
|
E
|
F
|
G
|
H
|
I
|
J
|
K
|
L
|
M
|
N
|
O
|
| 005 | P
|
Q
|
R
|
S
|
T
|
U
|
V
|
W
|
X
|
Y
|
Z
|
[
|
\
|
]
|
^
|
_
|
| 006 | `
|
a
|
b
|
c
|
d
|
e
|
f
|
g
|
h
|
i
|
j
|
k
|
l
|
m
|
n
|
o
|
| 007 | p
|
q
|
r
|
s
|
t
|
u
|
v
|
w
|
x
|
y
|
z
|
{
|
|
|
}
|
~
|
DEL
|
Caractères de contrôle
NUL
Originellement une NOP, un caractère à ignorer. Lui donner le code 0 permettait de prévoir des réserves sur les bandes perforées en laissant des zones sans perforation pour insérer de nouveaux caractères a posteriori. Avec le développement du langage C il a pris une importance particulière quand il a été utilisé comme indicateur de fin de chaîne de caractères.
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[11].
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 Modèle:Unité. N'importe quel caractère pouvait être transformé en DEL en complétant la perforation des 7 bits qui le composaient.
LF, CR, fin de ligne
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 le manipuler 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
Il est souvent associé à la combinaison de touche Contrôle + 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.
Notes et références
- ↑ http://www.trailing-edge.com/~bobbemer/SURVEY.HTM
- ↑ http://discover.lib.umn.edu/cgi/f/findaid/findaid-idx?c=umfa;cc=umfa;rgn=main;view=text;didno=cbi00067
- ↑ http://www.cs.tut.fi/~jkorpela/latin1/ascii-hist.html
- ↑ Appendix §A.6.8 de la norme de A963
- ↑ Unicode 5.0 en pratique, chapitre 7 « Ponctuation », Patrick Andries.
- ↑ 6,0 et 6,1 Internet Assigned Numbers Authority (May 14, 2007). "Character Sets". Accessed 2008-04-14.
- ↑ [ http://czyborra.com/charsets/iso8859.html#ISO-8859-1 ISO 8859-1 and MCS, from ISO 8859 Alphabet Soup]
- ↑ 8,0 8,1 8,2 et 8,3 Erreur de référence : Balise
<ref>incorrecte : aucun texte n’a été fourni pour les références nomméesT50_1992 - ↑ La norme ANSI X3.4 définit le caractère 39 par apostrophe (closing single quotation mark, acute accent) et les anciennes tables de caractères le représentaient souvent incliné. Les encodages plus récents restreignent ce code à la représentation de l'apostrophe verticale (ni penchée à droite, ni à gauche, mais neutre). Voir Latin-1's apostrophe, grave accent, acute accent.
- ↑ Le code 96 est également employé comme guillemet ouvrant simple en ASCII. En Unicode, il existe un code plus approprié.
- ↑ ASCII character set