# Caractère de contrôle

Un caractère de contrôle ou caractère non imprimable, en informatique et en télécommunications, est un point de code d’un jeu de caractères codés qui ne représente pas un symbole. Ces caractères sont notamment utilisés pour la mise en page : saut de page (FF), saut de ligne (LF), retour-chariot (CR), tabulation horizontale (HT), etc.
En ASCII, ces caractères sont codés de 0 à 31 (+127) : NULL, BS, CR, LF, HT, DC1, SI, ESC (+DEL)…
Ils sont complétés par les caractères ASCII imprimables, c'est-à-dire ceux codés de 32 à 126 : espace, !, ?, ", #, 1, =, A, a, (, }, autrement dit essentiellement les caractères imprimables présents sur un clavier américain, et par des séquences d'échappement.
Les caractères de contrôle se distinguent également des caractères spéciaux. Ces derniers renvoient souvent aux caractères imprimables absents du clavier américain : signes diacritiques (accents, cédilles, etc.), symboles : Ç, é, à, «, ß, π, etc.

## Listes des caractères de contrôle

Les caractères de contrôle de l'ASCII, aussi connus sous le nom de block C0 donné par le mécanisme d'extension de l'ISO/IEC 2022.
| Séquence caret | Décimal | Hexadécimal | Acronyme | Symbole | Nom(s) anglais | Traduction | Séquence C | Description |
| ^@ | 00 | 00 | NUL | ␀ | NULL | NUL | \0 | À l'origine utilisé pour permettre de laisser une absence (un gap) sur les bandes de papier pour modification ultérieure. Plus tard utilisé pour combler la suite d'un code nécessitant au terminal un temps de traitement (par exemple le temps d'un retour chariot ou d'un retour à la ligne sur un terminal imprimant). Il est maintenant souvent utilisé comme terminateur de chaîne de caractères, spécialement dans le langage de programmation C. |
| ^A | 01 | 01 | SOH | ␁ | START OF HEADING | DÉBUT D'EN-TÊTE | | Premier caractère du header de message. |
| ^B | 02 | 02 | STX | ␂ | START OF TEXT | DÉBUT DE TEXTE | | Premier caractère de texte pouvant être utilisé pour terminer le header du message. |
| ^C | 03 | 03 | ETX | ␃ | END OF TEXT | FIN DE TEXTE | | Souvent utilisé comme caractère d'arrêt (break) " pour interrompre ou terminer un programme ou un processus (par exemple sous DOS et sous Unix) |
| ^D | 04 | 04 | EOT | ␄ | END OF TRANSMISSION | FIN DE TRANSMISSION | | Utilisé sous Unix pour signaler une condition de fin de fichier (end-of-file) ou pour un logout d'un terminal. |
| ^E | 05 | 05 | ENQ | ␅ | ENQUIRY | DEMANDE | | Signal appelant une réponse du destinataire pour s'assurer de la continuité de sa présence. |
| ^F | 06 | 06 | ACK | ␆ | ACKNOWLEDGE | ACCUSÉ DE RÉCEPTION | | Réponse au ENQ, ou une indication de succès de réception de message. |
| ^G | 07 | 07 | BEL | ␇ | BELL | SONNERIE | \a | À l'origine utilisé pour faire tinter la cloche du terminal. Ensuite utilisé pour produire un court signal sonore (beep) sur des systèmes n'étant pas dotés d'un timbre physique. Par la suite, en mode silencieux, l'avertisseur peut attirer l'attention sous forme de flash en activant et désactivant l'inverse video (visual bell : cloche visuelle), le temps d'un éclair. |
| ^H | 08 | 08 | BS | ␈ | BACKSPACE | ESPACE ARRIÈRE | \b | Déplacement du curseur d'une position vers la gauche. En entrée, cela peut détruire le caractère précédent (à gauche, le sens d'écriture étant de gauche à droite). En sortie, alors qu'avec les premières technologies, un caractère imprimé ne pouvait plus être effacé, le retour arrière (backspace) était parfois utilisé pour générer des caractères accentués en ASCII. Par exemple, à pouvait être imprimé en utilisant la séquence des trois multiplets ASCII a BS ` (0x61 0x08 0x60). Cet usage est maintenant désuet et généralement n'est plus pris en charge. Pour permettre une levée d'ambiguïté entre les deux usages potentiels du backspace, le code de contrôle caractère d'annulation (cancel character) a été intégré dans le jeu de contrôle C1. |
| ^I | 09 | 09 | HT | ␉ | CHARACTER TABULATION, HORIZONTAL TABULATION | TABULATION HORIZONTALE | \t | Positionne le caractère suivant dans une colonne de type tab stop (tabulation). |
| ^J | 10 | 0A | LF | ␊ | LINE FEED, END OF LINE, NEW LINE | CHANGEMENT DE LIGNE | \n | Sur les machines à écrire, imprimantes, et certains émulateurs de terminaux déplace le curseur vers le bas d'une rangée sans modifier la position colonne. Sur Unix, utilisé pour indiquer la fin de ligne (end-of-line). Sous MS-DOS, Windows, et des standards réseaux variables, le caractère de contrôle LF est utilisé immédiatement après CR comme partie composante de la fin de ligne. |
| ^K | 11 | 0B | VT | ␋ | LINE TABULATION, VERTICAL TABULATION | TABULATION VERTICALE | \v | Positionnement sur la prochaine ligne de tabulation. |
| ^L | 12 | 0C | FF | ␌ | FORM FEED | SAUT DE PAGE | \f | Sur imprimante, charge la page suivante. Traité comme espace dans beaucoup de langages de programmation, peut être également utilisé pour séparer différentes divisions du code. Sur certains émulateurs de terminal, efface l'écran. |
| ^M | 13 | 0D | CR | ␍ | CARRIAGE RETURN | RETOUR DE CHARIOT | \r | À l'origine utilisé pour positionner le curseur en première colonne en restant sur la même ligne. Sur Mac OS (pre-Mac OS X), ainsi que sur d'autres systèmes anciens comme l'Apple II et le Commodore 64, utilisé pour indiquer la fin de ligne. Sous MS-DOS, Windows, et des protocoles réseaux voisins, est utilisé immédiatement avant LF pour former une marque de fin de ligne. La touche [Entrée] (ou [Retour]) d'un clavier envoie cette valeur qui peut être différente suivant le logiciel impliqué. |
| ^N | 14 | 0E | SO | ␎ | SHIFT OUT | HORS CODE | | Change pour un jeu de caractère alternatif. |
| ^O | 15 | 0F | SI | ␏ | SHIFT IN | EN CODE | | Retour au jeu de caractère régulier après avoir utilisé un jeu de caractères alternatifs. |
| ^P | 16 | 10 | DLE | ␐ | DATA LINK ESCAPE | ÉCHAPPEMENT TRANSMISSION | | Conduit à l'interprétation des prochains octets comme données binaires plutôt que des caractères de contrôle ou graphiques. Le retour à une utilisation normale est alors dépendant de l'implémentation. |
| ^Q | 17 | 11 | DC1 | ␑ | DEVICE CONTROL ONE (XON) | COMMANDE DE DISPOSITIF UN | | Ces quatre codes de contrôle sont réservés pour le contrôle des périphériques (device), leur interprétation est dépendante du périphérique connecté. DC1 et DC2 portaient l'intention primaire d'indiquer l'activation d'un périphérique alors que DC3 et DC4 indiquaient la pause ou l'arrêt. La pratique actuelle a fait de DC1 et DC3 (aussi connus comme XON et XOFF respectivement et dans cette utilisation) la standard de fait pour le flow contrôle logiciel. |
| ^R | 18 | 12 | DC2 | ␒ | DEVICE CONTROL TWO | COMMANDE DE DISPOSITIF DEUX | | Ces quatre codes de contrôle sont réservés pour le contrôle des périphériques (device), leur interprétation est dépendante du périphérique connecté. DC1 et DC2 portaient l'intention primaire d'indiquer l'activation d'un périphérique alors que DC3 et DC4 indiquaient la pause ou l'arrêt. La pratique actuelle a fait de DC1 et DC3 (aussi connus comme XON et XOFF respectivement et dans cette utilisation) la standard de fait pour le flow contrôle logiciel. |
| ^S | 19 | 13 | DC3 | ␓ | DEVICE CONTROL THREE (XOFF) | COMMANDE DE DISPOSITIF TROIS | | Ces quatre codes de contrôle sont réservés pour le contrôle des périphériques (device), leur interprétation est dépendante du périphérique connecté. DC1 et DC2 portaient l'intention primaire d'indiquer l'activation d'un périphérique alors que DC3 et DC4 indiquaient la pause ou l'arrêt. La pratique actuelle a fait de DC1 et DC3 (aussi connus comme XON et XOFF respectivement et dans cette utilisation) la standard de fait pour le flow contrôle logiciel. |
| ^T | 20 | 14 | DC4 | ␔ | DEVICE CONTROL FOUR | COMMANDE DE DISPOSITIF QUATRE | | Ces quatre codes de contrôle sont réservés pour le contrôle des périphériques (device), leur interprétation est dépendante du périphérique connecté. DC1 et DC2 portaient l'intention primaire d'indiquer l'activation d'un périphérique alors que DC3 et DC4 indiquaient la pause ou l'arrêt. La pratique actuelle a fait de DC1 et DC3 (aussi connus comme XON et XOFF respectivement et dans cette utilisation) la standard de fait pour le flow contrôle logiciel. |
| ^U | 21 | 15 | NAK | ␕ | NEGATIVE ACKNOWLEDGE | ACCUSÉ DE RÉCEPTION NÉGATIF | | Envoyé par une station comme réponse négative. Dans les protocoles de communication binaires et synchrones, le NAK est utilisé pour indiquer la détection d'une erreur dans le bloc de données précédemment reçu et ainsi accepter la retransmission dudit bloc. Dans les systèmes multipoint, le NAK est utilisé comme réponse not-ready (non-prête) à un poll. |
| ^V | 22 | 16 | SYN | ␖ | SYNCHRONOUS IDLE | SYNCHRONISATION | | Utilisé dans les systèmes à transmission synchrone pour fournir un signal à partir duquel la correction synchrone peut être établie entre le data terminal equipment, en particulier lorsqu'aucun autre caractère n'est transmis. |
| ^W | 23 | 17 | ETB | ␗ | END OF TRANSMISSION BLOCK | FIN DE BLOC DE TRANSMISSION | | Indique la fin de la transmission du bloc de données lorsque les données sont divisées en blocs à des fins de transmission. |
| ^X | 24 | 18 | CAN | ␘ | CANCEL | ANNULATION | | Indique une erreur ou une annulation dans les données précédentes. |
| ^Y | 25 | 19 | EM | ␙ | END OF MEDIUM | FIN DE SUPPORT | | Sur bandes papier ou magnétiques moyen d'indiquer que la fin de la partie utilisable de la bande a été atteinte. |
| ^Z | 26 | 1A | SUB | ␚ | SUBSTITUTE | SUBSTITUTION | | Initialement destiné à être utilisé comme caractère de contrôle de transmission pour indiquer que des caractères tronqués ou invalides ont été reçus. Il a souvent été utilisé à d'autres fins lorsque la signalisation intrabande des erreurs qu'il fournit n'est pas nécessaire, en particulier lorsque des méthodes robustes de détection et de correction des erreurs sont utilisées, ou lorsque les erreurs devraient être suffisamment rares pour rendre souhaitable l'utilisation du caractère pour d'autres fins. |
| ^[ | 27 | 1B | ESC | ␛ | ESCAPE | ÉCHAPPEMENT | | Dans sa conception d'origine, ce caractère permet d'introduire une séquence spéciale non normalisée par l'ASCII. Les caractères suivants ne sont donc plus de l'ASCII pur. Sur la plupart des systèmes, une touche d'échappement a été introduite pour produire ce caractère. |
| ^\ | 28 | 1C | FS | ␜ | FILE SEPARATOR | SÉPARATEUR DE FICHIERS | | Peut être utilisé comme délimiteur pour séparer les champs d'une structure de données. Si utilisé pour marquer des niveaux hiérarchiques, le caractère US est le niveau le plus bas (dividing plain-text data items), alors que RS, GS, et FS sont d'un niveau augmentant pour des subdivisions. |
| ^] | 29 | 1D | GS | ␝ | GROUP SEPARATOR | SÉPARATEUR DE GROUPES | | Peut être utilisé comme délimiteur pour séparer les champs d'une structure de données. Si utilisé pour marquer des niveaux hiérarchiques, le caractère US est le niveau le plus bas (dividing plain-text data items), alors que RS, GS, et FS sont d'un niveau augmentant pour des subdivisions. |
| ^^ | 30 | 1E | RS | ␞ | RECORD SEPARATOR | SÉPARATEUR D'ENREGISTREMENTS | | Peut être utilisé comme délimiteur pour séparer les champs d'une structure de données. Si utilisé pour marquer des niveaux hiérarchiques, le caractère US est le niveau le plus bas (dividing plain-text data items), alors que RS, GS, et FS sont d'un niveau augmentant pour des subdivisions. |
| ^_ | 31 | 1F | US | ␟ | UNIT SEPARATOR | SÉPARATEUR DE SOUS-ARTICLES | | Peut être utilisé comme délimiteur pour séparer les champs d'une structure de données. Si utilisé pour marquer des niveaux hiérarchiques, le caractère US est le niveau le plus bas (dividing plain-text data items), alors que RS, GS, et FS sont d'un niveau augmentant pour des subdivisions. |
| Bien que ne faisant pas techniquement partie de la plage des caractères du bloc C0, les deux caractères suivants partagent des caractéristiques des caractères de contrôle. Ils sont définis par l'ISO/IEC 2022 comme étant toujours disponibles quel que soit le jeu de caractères graphiques utilisé. Ces deux caractères ont la particularité d'avoir tous les bits graphiques identiques, soit à zéro, soit à un. |||||||||
| | 32 | 20 | SP | ␠ | SPACE | ESPACE | | L'espace est un caractère graphique du point de vue de l'ASCII. Il dispose d'une représentation graphique consistant en l'absence de symbole graphique. Il cause l'avancement d'un caractère de la position active. Dans certaines applications, l'espace est le séparateur de mot de plus bas niveau. |
| ^? | 127 | 7F | DEL | ␡ | DELETE | SUPPRESSION | | À l'origine conçu pour indiquer les caractères effacés sur des bandes de papier, puisque chaque caractère peut être transformé : la perforation de chacun des bits permet de les mettre tous à un. Sur les terminaux compatible VT100, ce caractère est généré par la touche étiquetée ⌫, également appelée backspace sur les claviers anglais modernes, et ne correspond pas à la touche delete des PC anglais. |