Codes de contrôle C0 et C1 - C0 and C1 control codes

Les codes de contrôle C0 et C1 ou les jeux de caractères de contrôle définissent les codes de contrôle à utiliser dans le texte par les systèmes informatiques qui utilisent l' ASCII et les dérivés de l'ASCII. Les codes représentent des informations supplémentaires sur le texte, telles que la position d'un curseur, une instruction pour commencer une nouvelle ligne ou un message indiquant que le texte a été reçu.

Les codes C0 sont la plage 00 HEX –1F HEX et l'ensemble C0 par défaut a été défini à l'origine dans ISO 646 ( ASCII ). Les codes C1 sont dans la plage 80 HEX –9F HEX et l'ensemble C1 par défaut a été défini à l'origine dans ECMA-48 (harmonisé plus tard avec ISO 6429). Le système ISO/IEC 2022 de spécification des caractères de contrôle et graphiques permet à d'autres ensembles C0 et C1 d'être disponibles pour des applications spécialisées, mais ils sont rarement utilisés.

Contrôles C0

L'ASCII a défini 32 caractères de contrôle, plus un caractère supplémentaire nécessaire pour le caractère DEL all-1 (nécessaire pour percer tous les trous sur une bande de papier et l'effacer).

Ce grand nombre de codes était souhaitable à l'époque, car les commandes multi-octets nécessiteraient la mise en œuvre d'une machine d'état dans le terminal, ce qui était très difficile avec les terminaux électroniques et mécaniques contemporains. Depuis lors, seuls quelques-uns des contrôles d'origine ont conservé leur utilisation : la plage « espaces blancs » de BS, TAB, LF, VT, FF et CR ; le code BEL ; et ESC (mais, sauf dans ISO-2022-JP , presque toujours dans le cadre d'une représentation ESC,'[' CSI commençant une séquence d'échappement ANSI ). D'autres sont inutilisés ou ont acquis des significations différentes telles que NUL étant le terminateur de chaîne C.

Certains protocoles de transmission série tels que ANPA-1312 , Kermit et XMODEM font un usage intensif des caractères de contrôle SOH, STX, ETX, EOT, ACK, NAK et SYN à des fins de rapprochement de leurs définitions d'origine.

Codes de contrôle ASCII de base

Ce sont les codes de contrôle ASCII standard, définis à l'origine dans ANSI X3.4 . Si vous utilisez le mécanisme d'extension ISO/IEC 2022 , ils sont désignés comme le jeu de caractères de contrôle C0 actif avec la séquence d'octets 0x1B 0x21 0x40( ESC ! @).

Séq déc Hex Abréviation symbole Nom C La description
^@ 00 00 NUL ?? Nul \0 Utilisé à l'origine pour permettre de laisser des espaces sur la bande de papier pour les modifications. Plus tard utilisé pour le remplissage après un code qui peut prendre un certain temps à traiter un terminal (par exemple un retour chariot ou un saut de ligne sur un terminal d'impression). Maintenant souvent utilisé comme terminateur de chaîne, en particulier dans le langage de programmation C.
^A 01 01 SOH ?? Début de cap En transmission de message, délimite le début d'un en-tête de message. Le format de cet en-tête peut être défini par un protocole applicable, tel que IPTC 7901 pour la transmission de texte journalistique, et il se termine généralement par STX. Dans Hadoop , il est souvent utilisé comme séparateur de champs.
^B 02 02 STX ?? Début du texte Premier caractère du texte du message, et peut être utilisé pour terminer l'en-tête du message.
^C 03 03 ETX ?? Fin du texte En transmission de message, délimite la fin du texte principal d'un message. Peut être suivi d'"informations post-texte" (c'est-à-dire d'un pied de page structuré) défini par un protocole applicable ou par tout texte supplémentaire, suivi de EOT. Dans la saisie au clavier, souvent utilisé comme caractère de « pause » (Ctrl-C) pour interrompre ou terminer un programme ou un processus.
^D 04 04 EOT ?? Fin de transmission Délimite la fin d'un message transmis, qui peut comprendre un en-tête, un texte de message et un pied de page post-texte, voire plusieurs textes et en-têtes associés. Peut également être utilisé pour mettre des terminaux en veille. Souvent utilisé sous Unix pour indiquer la fin du fichier sur un terminal, interprété par le shell comme la commande exitou logout.
^E 05 05 ENQ ?? Demande Signal destiné à déclencher une réponse à l'extrémité réceptrice, pour voir s'il est toujours présent.
^F 06 06 ACK ?? Accuser réception Réponse à un ENQ, ou indication de la réception réussie d'un message.
^G 07 07 BEL ?? Cloche , Alerte \a Utilisé à l'origine pour sonner une cloche sur le terminal. Plus tard utilisé pour un bip sur les systèmes qui n'avaient pas de cloche physique. Peut également activer et désactiver rapidement la vidéo inverse (une cloche visuelle).
^H 08 08 BS ?? Retour arrière \b Déplacez le curseur d'une position vers la gauche. A la saisie, cela peut supprimer le caractère à gauche du curseur. À la sortie, où dans les premières technologies informatiques, un caractère une fois imprimé ne pouvait pas être effacé, le retour arrière était parfois utilisé pour générer des caractères accentués en ASCII. Par exemple, àpourrait être produit en utilisant la séquence de trois caractères a BS `(ou, en utilisant les valeurs hexadécimales des caractères, 0x61 0x08 0x60). Cette utilisation n'est désormais généralement pas prise en charge (elle est interdite, par exemple, dans ISO/IEC 8859 ). Pour fournir une ambiguïté entre les deux utilisations potentielles du retour arrière, le code de contrôle de caractère d'annulation a été intégré à l'ensemble de contrôle C1 standard.
^I 09 09 HT ?? Tabulation de caractères, Tabulation horizontale \t Positionnez-vous sur le taquet de tabulation de caractère suivant .
^J dix 0A LF ?? Saut de ligne \n Sur les machines à écrire , les imprimantes et certains émulateurs de terminaux , déplace le curseur d'une ligne vers le bas sans affecter sa position dans la colonne. Sous Unix, utilisé pour marquer la fin de ligne . Dans DOS , Windows et diverses normes de réseau, LF est utilisé après CR dans le cadre de la marque de fin de ligne.
^K 11 0B Vermont ?? Tabulation en ligne, Tabulation verticale \v Positionnez le formulaire au taquet de tabulation de la ligne suivante.
^L 12 0C FF ?? Flux de formulaire \f Sur les imprimantes, chargez la page suivante. Traité comme un espace dans de nombreux langages de programmation et peut être utilisé pour séparer les divisions logiques du code. Dans certains émulateurs de terminaux, cela efface l'écran. Il apparaît toujours dans certains fichiers de texte brut courants sous la forme d'un caractère de saut de page , tels que les RFC publiés par l' IETF .
^M 13 0D RC ?? Retour chariot \r Utilisé à l'origine pour déplacer le curseur sur la colonne zéro tout en restant sur la même ligne. Sur Mac OS classique (pré- Mac OS X ), ainsi que dans les systèmes antérieurs tels que Apple II et Commodore 64 , utilisé pour marquer la fin de ligne . Dans DOS , Windows et diverses normes de réseau, il est utilisé avant LF dans le cadre de la marque de fin de ligne. La touche Entrée ou Retour d'un clavier enverra ce caractère, mais il peut être converti en une séquence de fin de ligne différente par un programme de terminal.
^N 14 0E DONC ?? Sortir Basculez vers un autre jeu de caractères.
^O 15 0F SI ?? Shift In Revenez au jeu de caractères normal après Shift Out.
^P 16 dix DLE ?? Échappement de liaison de données Faire en sorte qu'un nombre limité d'octets consécutifs soient interprétés d'une manière différente, par exemple en tant que données brutes (par opposition aux codes de contrôle ou aux caractères graphiques). Les détails de ceci dépendent de la mise en œuvre.

Des normes telles que (maintenant retirée) ECMA-37 existaient pour des applications spécifiques du caractère Data Link Escape pour accéder à des fonctions de contrôle de transmission supplémentaires.

Le schéma de compression standard pour Unicode suggère de remplacer tous les octets de la plage C0 par DLE, suivi de cet octet plus 0x40, si les données SCSU doivent être transmises sur un système qui serait confus par la réaffectation des octets C0 par SCSU.

^Q 17 11 DC1 ?? Contrôle de périphérique un ( XON ) Ces quatre codes de contrôle sont réservés au contrôle de l'appareil, l'interprétation dépendant de l'appareil auquel ils étaient connectés. DC1 et DC2 étaient principalement destinés à indiquer l'activation d'un appareil, tandis que DC3 et DC4 étaient principalement destinés à indiquer la mise en pause ou l'arrêt d'un appareil. DC1 et DC3 (connus également sous le nom de XON et XOFF respectivement dans cet usage) ont pour origine les fonctions « démarrer et arrêter le lecteur de bande papier à distance » dans les réseaux télex ASCII . Cette utilisation du téléimprimeur est devenue la norme de facto pour le contrôle de flux logiciel .
^R 18 12 DC2 ?? Contrôle de l'appareil deux
^S 19 13 DC3 ?? Contrôle de l'appareil trois ( XOFF )
^T 20 14 DC4 ?? Contrôle de l'appareil quatre
^U 21 15 NAK ?? Accusé de réception négatif Envoyé par une station en réponse négative à la station avec laquelle la connexion a été établie. Dans le protocole de communication synchrone binaire, le NAK est utilisé pour indiquer qu'une erreur a été détectée dans le bloc précédemment reçu et que le récepteur est prêt à accepter la retransmission de ce bloc. Dans les systèmes multipoints, le NAK est utilisé comme réponse non prête à un sondage.
^V 22 16 SYN ?? Inactif synchrone Utilisé dans les systèmes de transmission synchrones pour fournir un signal à partir duquel une correction synchrone peut être réalisée entre les équipements terminaux de données, en particulier lorsqu'aucun autre caractère n'est transmis.
^W 23 17 ETB ?? Bloc de fin de transmission Indique la fin d'un bloc de transmission de données lorsque les données sont divisées en de tels blocs à des fins de transmission.

S'il n'est pas utilisé à d'autres fins, IPTC 7901 recommande d'interpréter ETB comme un caractère de fin de paragraphe.

^X 24 18 POUVEZ ?? Annuler Indique que les données qui le précèdent sont erronées ou doivent être ignorées.
^Y 25 19 EM ?? Fin du milieu Destiné à indiquer sur du papier ou des bandes magnétiques que la fin de la partie utilisable de la bande a été atteinte. Il peut également marquer la fin de la partie utilisée du support, et ne correspond pas nécessairement à la fin physique du support.

S'il n'est pas utilisé à d'autres fins, IPTC 7901 recommande de réutiliser EM comme espace cadratin pour indenter la première ligne d'un paragraphe (voir aussi EMSP ).

^Z 26 1A SOUS ?? Remplacer Initialement destiné à être utilisé comme caractère de contrôle de transmission pour indiquer que des caractères brouillés ou invalides avaient été reçus. Il a souvent été utilisé à d'autres fins lorsque la signalisation d'erreurs dans la bande qu'il fournit n'est pas nécessaire, en particulier lorsque des méthodes robustes de détection et de correction d'erreurs sont utilisées, ou lorsque les erreurs devraient être suffisamment rares pour que l'utilisation du caractère pour autres fins souhaitables. Sous DOS , Windows , CP/M et les dérivés des systèmes d'exploitation de Digital Equipment Corporation , il est utilisé pour indiquer la fin du fichier, à la fois lors de la saisie sur le terminal, et parfois dans les fichiers texte stockés sur le disque.
^[ 27 1B ESC ?? Échapper \e La touche Échap du clavier entraînera l'envoi de ce caractère sur la plupart des systèmes. Il peut être utilisé dans les interfaces utilisateur logicielles pour quitter un écran, un menu ou un mode, ou dans des protocoles de contrôle de périphérique (par exemple, des imprimantes et des terminaux) pour signaler que ce qui suit est une séquence de commandes spéciale plutôt qu'un texte normal. Dans les systèmes basés sur ISO/IEC 2022 , même si un autre ensemble de codes de contrôle C0 est utilisé, cet octet est requis pour toujours représenter le caractère d'échappement.

^\ 28 1C FS ?? Séparateur de fichiers Peut être utilisé comme délimiteur pour marquer les champs des structures de données. S'il est utilisé pour les niveaux hiérarchiques, US est le niveau le plus bas (divisant les éléments de données en texte brut), tandis que RS, GS et FS sont de niveau croissant pour diviser les groupes constitués d'éléments du niveau inférieur.

Le format d' information Unix utilise US, suivi d'un saut de page facultatif et d'un saut de ligne, pour marquer le début d'un nœud.

MARC 21 utilise US comme délimiteur de sous-zone, RS comme terminaison de zone et GS comme terminaison d'enregistrement.

Dans l'édition actuelle de l' IPTC 7901 , s'ils ne sont pas utilisés à d'autres fins, US est recommandé comme séparateur de colonnes dans les tableaux, FS comme "Central Field Separator" dans les tableaux, et GS et RS respectivement pour marquer un espace suivant ou tiret-moins comme insécable ou souple respectivement (dans les jeux de caractères ne fournissant pas de caractères NBSP et SHY explicites).

La splitlinesméthode de chaîne de Python traite FS, GS et RS, mais pas US, comme des séparateurs en plus des caractères de saut de ligne.

^] 29 1D SG ?? Séparateur de groupe
^^ 30 1E RS ?? Séparateur d'enregistrements
^_ 31 1F nous ?? Séparateur d'unités
Bien qu'ils ne fassent pas techniquement partie de la plage de caractères de contrôle C0, les deux caractères suivants sont définis dans la norme ISO/IEC 2022 comme étant toujours disponibles, quels que soient les ensembles de caractères de contrôle et de caractères graphiques enregistrés. Ils peuvent être considérés comme ayant certaines caractéristiques des personnages de contrôle.
  32 20 SP ?? Espacer L'espace est un caractère graphique. Il a une représentation visuelle consistant en l'absence d'un symbole graphique. Il fait avancer la position active d'une position de caractère. Dans certaines applications, l'espace peut être considéré comme un "séparateur de mots" de niveau inférieur à utiliser avec les caractères de séparation adjacents.
^? 127 7F DEL ?? Effacer Ne faisant pas techniquement partie de la plage de caractères de contrôle C0, il était à l'origine utilisé pour marquer les caractères supprimés sur du ruban de papier, car n'importe quel caractère pouvait être remplacé par tous en perçant des trous partout. Sur les terminaux compatibles VT100 , il s'agit du caractère généré par la touche libellée ⌫, généralement appelée retour arrière sur les machines modernes, et ne correspond pas à la touche de suppression du PC .

Noms des numéros de catégorie

Plusieurs des codes de contrôle ASCII de base sont classés en quelques catégories et reçoivent parfois des noms abrégés alternatifs composés de cette catégorie et d'un numéro :

  • Commandes de transmission : TC 1 (SOH), TC 2 (STX), TC 3 (ETX), TC 4 (EOT), TC 5 (ENQ), TC 6 (ACK), TC 7 (DLE), TC 8 (NAK) , TC 9 (SYN), TC 10 (ETB).
  • Effecteurs de format : FE 0 (BS), FE 1 (HT), FE 2 (LF), FE 3 (VT), FE 4 (FF), FE 5 (CR).
  • Commandes de l'appareil : DC 1 , DC 2 , DC 3 , DC 4 .
  • Séparateurs d'informations : IS 1 (US), IS 2 (RS), IS 3 (GS), IS 4 (FS).
  • Blocage des décalages : LS 0 (SI), LS 1 (SO).
  • Autres : NUL, BEL, CAN, EM, SUB, ESC.

ISO/IEC 2022 (ECMA-35) fait référence aux décalages de verrouillage C0 en tant que LS0 et LS1 dans les environnements 8 bits, et en tant que SI et SO dans les environnements 7 bits.

La première édition de 1963 de l'ASCII classait DLE comme un contrôle de périphérique, plutôt que comme un contrôle de transmission, et lui a donné l'abréviation DC0 ("contrôle de périphérique réservé à l'échappement de la liaison de données").

Les codes d' effecteur de format (FE) définissent et activent le formatage (comme les sauts de ligne ) qui affecte la disposition et le rendu des caractères graphiques, par opposition au contrôle d'autres fonctions des périphériques matériels ou à d'autres effets secondaires. Les effecteurs au format C0 sont autorisés dans les séquences ISO/IEC 6429 DCS , OSC , PM et APC . Les séparateurs d'informations et les effecteurs de format C0 (moins BS ) sont les seuls codes de contrôle C0 avec une sémantique définie par la norme Unicode, l'interprétation du reste des contrôles C0 étant laissée aux protocoles de niveau supérieur.

ISO/IEC 2022 (ECMA-35) exige que si les jeux de codes de contrôle C0 incluent les dix codes de contrôle de transmission (TC) ASCII, ils doivent être codés à leurs emplacements ASCII. Il interdit également que ces dix commandes de transmission soient incluses dans un ensemble de codes de commande C1 et interdit aux commandes de transmission en plus de ces dix d'être incluses dans un ensemble de commandes C0.

Jeux de codes de contrôle C0 modifiés

Bien que les jeux de codes de contrôle C0 conservent généralement la plupart des codes de contrôle ASCII inchangés, un nombre est enregistré qui remplace certaines fonctions de contrôle par des alternatives. Une sélection d'entre eux, à l'exclusion de ceux liés au vidéotex , est présenté ci-dessous.

Séq déc Hex Remplacé Dans le(s) jeu(s) de codes Abréviation Nom La description
^I 09 09 HT NATS, IPTC FO Mise en page Utilisé dans les données tabulaires pour passer à la position de tabulation suivante (en conservant la sémantique "Tab" à cet égard), et dans les formats standard pour indiquer la phase suivante. La spécification IPTC actuelle recommande plutôt d'utiliser des contrôles ASCII C0 normaux et d'utiliser le contrôle US comme saut de colonne dans les tableaux.
^K 11 0B Vermont NATS, IPTC DPE Fin de l'instruction Délimite la fin d'une instruction typographique destinée au dispositif de composition.
^L 12 0C FF NATS, IPTC SCD Début de l'instruction Délimite le début d'une instruction typographique destinée au dispositif de composition.
^M 13 0D RC NATS, IPTC QL Quad gauche Termine une ligne, indiquant qu'elle doit être alignée à gauche. La spécification IPTC actuelle recommande plutôt d'utiliser des contrôles ASCII C0 réguliers et de représenter cette fonction avec la < CR LFséquence.
^N 14 0E DONC NATS UR Rail supérieur Commence une zone de texte accentuée. Utilisé dans la transmission de texte journalistique scandinave à partir de 1975; Les recommandations IPTC à partir de 1976 utilisaient FT2 et FT3 à la place (voir ci-dessous). La spécification IPTC actuelle recommande plutôt d'utiliser des contrôles ASCII C0 réguliers et de marquer cette fonction avec le ^caractère.
^O 15 0F SI NATS G / D Rail inférieur Termine une zone de texte accentuée. Utilisé dans la transmission de texte journalistique scandinave à partir de 1975; Les recommandations IPTC à partir de 1976 utilisaient FT1 à la place (voir ci-dessous). La spécification IPTC actuelle recommande plutôt d'utiliser des contrôles ASCII C0 réguliers et de marquer cette fonction avec le @caractère.
^Q 17 11 DC1 IPTC FT1 Police 1 Passe à la police normale, c'est-à-dire désactive le gras ou l'italique.
^R 18 12 DC2 IPTC FT2 Police deux Passe à la police italique.
^S 19 13 DC3 IPTC FT3 Police trois Passe en caractères gras.
^X 24 18 POUVEZ NATS, IPTC KW Tuer le mot Supprime le mot précédent (supprime jusqu'au dernier espace inclus, ou jusqu'au saut de ligne précédent et excluant celui-ci, celui qu'il rencontre en premier). Conserve la sémantique « Annuler » à cet égard, mais a une fonction plus spécifique.
^Y 25 19 EM T.61 / T.51 , autonome SS2 Équipe unique deux Code de changement de vitesse non verrouillable pour G2 ; une représentation C0 permettant de le représenter avec un octet dans un environnement 7 bits.
^\ 28 1C FS NATS, IPTC, autonome SS, SS2 Super Shift ou Single Shift Deux Code de changement de vitesse non verrouillable .
JIS C 6225 CEX Extension de contrôle Introduit une séquence de contrôle telle que spécifiée par le JIS C 6225 maintenant retiré, désigné JIS X 0207 dans des sources ultérieures. Celles-ci comprenaient des séquences pour contrôler le comportement du texte vertical, les exposants et les indices, et pour transmettre des graphiques de caractères personnalisés .
^] 29 1D SG NATS, IPTC QC Centre de quads Termine une ligne, indiquant qu'elle doit être centrée.
T.61 / T.51 SS3 Équipe unique trois Code de changement de vitesse non verrouillable pour G3 ; une représentation C0 permettant de le représenter avec un octet dans un environnement 7 bits.
^^ 30 1E RS NATS, IPTC QR Quad à droite Termine une ligne, indiquant qu'elle doit être alignée à droite.
^_ 31 1F nous NATS, IPTC JY Justifier Termine une ligne qui doit être justifiée.

Autres jeux de codes de contrôle C0

Le télétexte définit un ensemble entièrement différent de codes de contrôle . Dans les formats où la compatibilité avec les codes de contrôle C0 de l'ECMA-48 n'est pas requise, ces codes de contrôle sont parfois mappés de manière transparente à la plage de codes de contrôle Unicode C0 (U+0000 à U+001F).

Commandes C1

Parallèlement au développement de l'édition 1972 de l' ISO 646 , qui a révisé la norme pour introduire le concept de versions nationales du code en plus de l'ASCII d'origine américaine, des travaux étaient également en cours dans le but de définir des mécanismes d'extension pour l'ASCII, applicable aux environnements 7 bits et 8 bits, qui seraient publiés sous les noms ECMA-35 et ISO 2022 .

Ces mécanismes ont été conçus pour que tout code conforme à 8 bits puisse être converti en un code correspondant à 7 bits, et vice versa . Dans un environnement de 7 bits, le décalage Out ( SO ) de commande changerait le sens des 94 octets à 0x21travers 0x7E( par exemple les codes graphiques, à l' exclusion de l'espace) pour appeler des caractères à partir d' un autre ensemble, et le changement de ( SI témoin) serait les changer en arrière. Dans un environnement 8 bits, au lieu d'utiliser des codes de décalage, le huitième bit a été défini sur un octet faisant référence au jeu de caractères graphiques supplémentaires. Cela signifiait que les octets à 0xA1travers 0xFEétaient utilisés pour les caractères graphiques supplémentaires. Les caractères de contrôle C0, n'étant pas affectés par l'état de décalage d'un code à 7 bits, devaient toujours être représentés dans un code à 8 bits avec le huitième bit non défini. Les octets par conséquent inutilisés dans la plage 0x80jusqu'à 0x9Fpourraient être utilisés pour des codes de contrôle supplémentaires, qui seraient plutôt représentés comme à 0x1B 0x40travers 0x1B 0x5F( ESC @à ESC _) dans un code à 7 bits. Ces codes de contrôle supplémentaires sont connus sous le nom de codes de contrôle C1 . Pour conserver la compatibilité avec la représentation 7 bits, le comportement des octets 0xA0et a 0xFFété initialement laissé indéfini.

Le premier ensemble de codes de contrôle C1 à être enregistré pour une utilisation avec ISO 2022 était DIN 31626 , un ensemble spécialisé pour une utilisation bibliographique qui a été enregistré en 1979. L'ensemble ISO/IEC 6429 à usage général a été enregistré en 1983, bien que la spécification ECMA-48 sur laquelle il était basé avait été publié pour la première fois en 1976.

D'autres éditions des normes ont modifié les dispositions dans une certaine mesure. Par exemple, une nouvelle révision de l'ECMA-35 et de l'ISO 2022 en 1985 a introduit le concept d'un jeu de caractères graphiques à 96 codes. Dans un code à 8 bits, cela permettait d'utiliser toute la plage de 0xA0à 0xFFpour les caractères graphiques. L'utilisation d'ensembles de codes à 96 signifiait également que la signification des octets 0x20et 0x7Fdu code à 7 bits correspondant pouvait différer de « Espace » et « Supprimer », sauf si le code était dans l'état Shift In. L'utilisation de jeux de 96 codes pour le jeu G0 (Shift In) n'a pas été possible.

Conformément à cette structure de code ISO 2022 révisée à 8 bits, ISO 8859 définit des ensembles de caractères à coder sur 0xA0–FF, en combinaison avec les caractères graphiques ASCII sur 0x20–7E, et réserve les octets en dehors de ces plages pour une utilisation comme codes non graphiques par d'autres spécifications telles que l'ISO 6429. Unicode hérite de ses 256 premiers points de code de l'ISO 8859-1, incorporant ainsi également une plage réservée à un ensemble de codes de contrôle C1, bien qu'il laisse principalement leur fonction à définir par un niveau supérieur protocoles, avec ISO/IEC 6429 suggéré par défaut.

Codes de contrôle C1 à usage général

Ce sont les codes de contrôle étendus les plus courants et sont définis dans ISO/IEC 6429 , ECMA -48 et JIS X 0211 (anciennement JIS C 6323). Si vous utilisez le mécanisme d'extension ISO/IEC 2022 , ils sont désignés comme le jeu de caractères de contrôle C1 actif avec la séquence 0x1B 0x22 0x43( ESC " C). Bien qu'Unicode n'exige pas un jeu de codes de contrôle C1 particulier, laissant leur interprétation à spécifier par des protocoles de niveau supérieur, et ne spécifie qu'un comportement pour U+0085, il suggère d'interpréter les codes de contrôle C1 comme spécifié dans ISO/IEC 6429 en l'absence d'utilisation à d'autres fins. Le tableau ci-dessous répertorie également trois codes de contrôle répertoriés aux côtés des codes ISO/IEC 6429 dans RFC  1345 , mais pas réellement définis par ISO/IEC 6429 ( PAD , HOP et SGC ).

À l'exception de SS2 et SS3 dans le texte EUC-JP et NEL dans le texte transcodé à partir d' EBCDIC , les formes à 8 bits de ces codes ne sont presque jamais utilisées. CSI , DCS et OSC sont utilisés pour contrôler les terminaux texte et les émulateurs de terminaux , mais presque toujours en utilisant leurs représentations de code d'échappement à 7 bits. Leurs représentations à un octet conformes à la norme ISO/IEC 2022 ne sont pas valides en UTF-8 , et les codages UTF-8 de leurs points de code correspondants ont une longueur de deux octets, tout comme leurs formes de code d'échappement (par exemple, CSI à U+009B est codé comme les octets 0xC2, 0x9B en UTF-8), il n'y a donc aucun avantage à les utiliser plutôt que la séquence d'échappement équivalente à deux octets. Lorsque ces codes apparaissent dans des documents modernes, des pages Web, des messages électroniques, etc., ils sont généralement destinés à imprimer des caractères à cette position dans un codage propriétaire tel que Windows-1252 ou Mac OS Roman qui utilise les codes C1 pour fournir caractères graphiques supplémentaires.

Les noms officiels en anglais de certains codes C1 ont été révisés dans l'édition la plus récente de la norme pour les codes de contrôle en général (ISO 6429:1992 ou ECMA-48:1991) pour être neutres en ce qui concerne les caractères graphiques utilisés avec eux, et de ne pas supposer que, comme dans l'écriture latine, les lignes sont écrites sur une page de haut en bas et que les caractères sont écrits sur une ligne de gauche à droite. Les abréviations utilisées n'ont pas été modifiées, car la norme avait déjà spécifié qu'elles resteraient inchangées lorsque la norme serait traduite dans d'autres langues. Lorsque le nom a été modifié, le nom d'origine à partir duquel l'abréviation a été dérivée est également indiqué entre parenthèses dans les tableaux ci-dessous.

Échap+ déc Hex Acro Nom La description
@ 128 80 TAMPON Caractère de remplissage Ne fait pas partie de l' ISO/CEI 6429 (ECMA-48). Dans les premières versions de l'ISO 10646, a été utilisé dans le cadre d'un mécanisme proposé pour coder les caractères non ASCII. Cette utilisation a été supprimée dans les versions ultérieures. Est néanmoins utilisé par la forme de longueur fixe à deux octets à usage interne du code Unix étendu (EUC) basé sur ISO-2022 pour le remplissage à gauche des caractères à un octet dans les jeux de codes 1 et 3, alors que NUL remplit la même fonction pour le code les ensembles 0 et 2. Cela n'est pas fait dans le format EUC "packed" habituel.
UNE 129 81 SAUTER Préréglage d'octets aigus Ne fait pas partie de l' ISO/CEI 6429 (ECMA-48). Dans les premières versions de l'ISO 10646, était conçu comme un moyen d'introduire une séquence de caractères à plusieurs octets conformes à la norme ISO 2022 avec le même premier octet sans répéter ledit premier octet, réduisant ainsi la longueur ; ce comportement n'a jamais fait partie d'une implémentation standard ou publiée. Son nom a néanmoins été retenu comme nom de point de code standard RFC 1345 .  
B 130 82 HBP Pause autorisée ici Suit un caractère graphique où un saut de ligne est autorisé. À peu près équivalent à un trait d'union souple, sauf que le moyen d'indiquer un saut de ligne n'est pas nécessairement un trait d'union. Ne fait pas partie de la première édition de l'ISO/CEI 6429. Voir aussi l' espace de largeur zéro .
C 131 83 NBH Pas de pause ici Suit le caractère graphique qui ne doit pas être cassé. Ne fait pas partie de la première édition de l'ISO/CEI 6429. Voir aussi word joiner .
132 84 INDIANA Indice Déplacez la position active d'une ligne vers le bas, pour éliminer toute ambiguïté sur la signification de LF. Obsolète en 1988 et retirée en 1992 de la norme ISO/IEC 6429 (1986 et 1991 respectivement pour ECMA-48).
E 133 85 NEL Ligne suivante Équivalent à CR+LF. Utilisé pour marquer la fin de ligne sur certains mainframes IBM.
F 134 86 ASS Début de la zone sélectionnée Utilisé par les terminaux orientés bloc .
g 135 87 ESA Fin de la zone sélectionnée
H 136 88 HTS Ensemble de tabulation de caractères Ensemble de
tabulation horizontale
Fait qu'un arrêt de tabulation de caractères est défini à la position active.
je 137 89 HTJ Tabulation de caractères avec justification
Tabulation horizontale avec justification
Similaire à la tabulation de caractères, sauf qu'au lieu que des espaces ou des lignes soient placés après les caractères précédents jusqu'à ce que le prochain taquet de tabulation soit atteint, les espaces ou les lignes sont placés avant le champ actif de sorte que le caractère graphique précédent soit placé juste avant le prochain taquet de tabulation.
J 138 8A VTS Ensemble de tabulation de ligne Ensemble de
tabulation verticale
Provoque le réglage d'un arrêt de tabulation de ligne à la position active.
K 139 8B PLD Renvoi de ligne partiel Renvoi
partiel de ligne
Utilisé pour produire des indices et des exposants dans ISO/IEC 6429 , par exemple, dans une imprimante.
Les indices utilisent tandis que les exposants utilisent . PLD text PLUPLU text PLD
L 140 8C PLU Ligne partielle en arrière
Ligne partielle
M 141 8D IR Inverser l'
index inverse de saut de ligne
N 142 8E SS2 Monoposte 2 Le caractère suivant invoque un caractère graphique des ensembles graphiques G2 ou G3 respectivement. Dans les systèmes conformes à la norme ISO/IEC 4873 (ECMA-43), même si un ensemble C1 autre que celui par défaut est utilisé, ces deux octets ne peuvent être utilisés qu'à cette fin.
O 143 8F SS3 Monoposte 3
P 144 90 DCS Chaîne de contrôle de périphérique Suivie d'une chaîne de caractères imprimables (0x20 à 0x7E) et d'effecteurs de format (0x08 à 0x0D), terminée par ST (0x9C). Cela peut être utilisé par des séquences de contrôle de longueur variable pour les terminaux de texte et les émulateurs de terminaux, tels que les  requêtes terminfo .
Q 145 91 PU1 Usage privé 1 Réservé à une fonction sans signification normalisée pour un usage privé selon les besoins, sous réserve de l'accord préalable de l'expéditeur et du destinataire des données.
R 146 92 PU2 Usage privé 2
S 147 93 STS Définir l'état de transmission
T 148 94 CCH Annuler le caractère Retour arrière destructeur, destiné à éliminer l'ambiguïté sur le sens de BS .
U 149 95 MW Message en attente
V 150 96 SPA Début de la zone protégée Utilisé par les terminaux orientés bloc .
W 151 97 EPA Fin de la zone protégée
X 152 98 SOS Début de chaîne Suivi d'une chaîne de contrôle terminée par ST (0x9C) qui, contrairement à celles initiées par DCS , OSC , PM ou APC , peut contenir n'importe quel caractère sauf SOS ou ST. Ne fait pas partie de la première édition de l'ISO/CEI 6429.

MARC 21 utilise SOS et ST dans les notices au format Unicode pour marquer une chaîne qui doit être ignorée à des fins de collation, tandis que les notices au format MARC-8 utilisent NSB et NSE dans le même but.

Oui 153 99 SGC Introducteur de caractère graphique unique Ne fait pas partie de l'ISO/CEI 6429. Dans les premières versions de l'ISO 10646, était utilisé pour coder un seul caractère à plusieurs octets sans sortir du mode HOP . Dans les versions ultérieures, cette fonction a été supprimée, le nom a néanmoins été conservé en tant que nom de point de code standard RFC  1345 .
Z 154 9A SCI Introducteur à caractère unique À suivre par un seul caractère imprimable (0x20 à 0x7E) ou un effecteur de format (0x08 à 0x0D). L'intention était de fournir un moyen par lequel une fonction de contrôle ou un caractère graphique qui serait disponible quel que soit le graphique ou les ensembles de contrôle utilisés pourraient être définis. Les définitions de ce que l'octet suivant invoquerait n'ont jamais été implémentées dans une norme internationale. Ne fait pas partie de la première édition de l'ISO/CEI 6429.
[ 155 9B CSI Introducteur de séquence de contrôle Utilisé pour introduire des séquences de contrôle qui prennent des paramètres.
\ 156 9C ST Terminateur de chaîne Termine une chaîne de contrôle de longueur variable initiée par DCS , SOS , OSC , PM ou APC .
] 157 9D OSC Commande du système d'exploitation Suivie d'une chaîne de caractères imprimables (0x20 à 0x7E) et d'effecteurs de format (0x08 à 0x0D), terminée par ST (0x9C). Ces trois codes de contrôle étaient destinés à être utilisés pour permettre la signalisation dans la bande des informations de protocole, mais sont rarement utilisés à cette fin.

Certains émulateurs de terminaux , y compris xterm , prennent en charge les séquences OSC pour définir le titre de la fenêtre et reconfigurer la palette de couleurs disponible. Ils peuvent également prendre en charge la terminaison d'une séquence OSC avec BEL comme alternative non standard à la ST standard.

APC est parfois utilisé pour transmettre des commandes Kermit , bien que cela puisse être désactivé ou filtré pour des raisons de sécurité.

^ 158 9E PM Message de confidentialité
_ 159 9F APC Commande de programme d'application

Codes de contrôle C1 à usage bibliographique

L'ensemble de codes de contrôle C1 alternatif suivant est défini pour les applications bibliographiques telles que les systèmes de bibliothèque . Il concerne principalement la collation de chaînes et le balisage des champs bibliographiques. Des variantes légèrement différentes sont définies dans la norme allemande DIN 31626 (publié en 1978 et depuis retiré) et l' ISO norme ISO 6630 , ce dernier qui a également été adoptée en Allemagne DIN ISO 6630 . Lorsque ces différences sont indiquées dans le tableau ci-dessous, le cas échéant. MARC-8 utilise le codage de NSB et NSE de cet ensemble et ajoute quelques effecteurs de format supplémentaires dans des emplacements non utilisés par la version ISO ; cependant, MARC 21 utilise ce jeu de contrôles uniquement dans les notices MARC-8, pas dans les notices au format Unicode.

Si vous utilisez le mécanisme d'extension ISO/IEC 2022 , le jeu DIN 31626 est désigné comme jeu de caractères de contrôle C1 actif avec la séquence 0x1B 0x22 0x45( ESC " E), et le jeu ISO 6630 / DIN ISO 6630 est désigné par la séquence 0x1B 0x22 0x42( ESC " B). L'extension 1985 de l'ensemble ISO 6630 peut également être explicitement spécifiée en utilisant la séquence 0x1B 0x26 0x40 0x1B 0x22 0x42( ESC & @ ESC " B).

Échap+ déc Hex Acro Nom La description
@…F 128…134 80…86 - (réservé)
g 135 87 SUC Gros plan pour le tri (DIN 31626, ISO 6630) Déclare que deux séquences de caractères successives séparées par un espace ou un séparateur doivent être traitées comme un seul mot à des fins de classement.
H 136 88 ONN Début des caractères non triés (DIN 31626, ISO 6630, MARC 21) Marque le début d'une séquence de caractères à ignorer à des fins de classement. MARC 21 utilise ce caractère dans les notices MARC-8 , mais utilise 0x98 ( SOS ) dans les notices Unicode dans le même but.
je 137 89 NSE Fin des caractères non triés (DIN 31626, ISO 6630, MARC 21) Marque la fin d'une séquence de caractères à ignorer à des fins de classement. MARC 21 utilise ce caractère dans les notices MARC-8, mais utilise 0x9C ( ST ) dans les notices Unicode dans le même but.
J 138 8A FIL Caractère de remplissage (DIN 31626) Remplace un caractère alphanumérique obligatoire dans un champ.
K 139 8B TCI Indicateur de balise dans le contexte (DIN 31626) Dans un champ bibliographique, utilisé pour désigner les données d'un autre champ bibliographique par son numéro d'étiquette.
PLD Ligne partielle vers le bas (ISO 6630) Ne figure pas dans l'édition originale de l'ISO 6630. Dans l'édition 1985 de l'ISO 6630, utilisé pour la ligne descendante partielle (voir PLD ci-dessus).
L 140 8C ICI Numéro d'identification dans l'indicateur de contexte (DIN 31626) Dans un champ bibliographique, utilisé pour désigner les données d'une autre notice bibliographique par son numéro d'identification.
PLU Alignement partiel (ISO 6630) Ne figure pas dans l'édition originale de l'ISO 6630. Dans l'édition 1985 de l'ISO 6630, utilisé pour l'alignement partiel (voir PLU ci-dessus).
M 141 8D OSC Contrôle de syllabation en option (DIN 31626) Marque une limite de syllabe dans un mot long. Voir aussi trait d'union conditionnel .
ZWJ Menuisier (MARC 21) Dans MARC-8, utilisé pour le menuisier à largeur nulle , tandis que U+200D est utilisé dans les notices MARC au format Unicode.
N 142 8E SS2 Monoposte 2 (DIN 31626) Code de changement de vitesse non verrouillable, voir SS2 ci-dessus.
ZWNJ Non-adhérent (MARC 21) Dans MARC-8, utilisé pour les non-jointures à largeur nulle , tandis que U+200C est utilisé dans les notices MARC au format Unicode.
O 143 8F SS3 Monoposte 3 (DIN 31626) Code de changement de vitesse sans verrouillage, voir SS3 ci-dessus.
P 144 90 - (réservé)
Q 145 91 VAE Début de l'annotation intégrée (DIN 31626, ISO 6630) Marque le début d'une annotation de longueur variable qui est intégrée dans un champ bibliographique, au lieu d'être séparée à l'aide d'une désignation de contenu.
R 146 92 EAE Fin d'annotation incorporée (DIN 31626, ISO 6630) Marque la fin d'une annotation incorporée de longueur variable.
S 147 93 EST B Élément Spécification Début (DIN 31626) Marque le début d'une chaîne d'informations spécifiques d'une description, autre qu'un mot-clé ou une chaîne de permutation.
T 148 94 ISE Article Spécification Fin (DIN 31626) Marque la fin d'une chaîne d'informations spécifiques.
U 149 95 SIB Début de l'interpolation de tri (ISO 6630) Marque le début d'une séquence de caractères utilisée uniquement à des fins de classement.
V 150 96 SIE Fin de l'interpolation de tri (ISO 6630) Marque la fin d'une séquence de caractères utilisée uniquement à des fins de classement.
W 151 97 BLU Début de la valeur de tri secondaire (ISO 6630) Marque le début d'une chaîne avec une valeur de classement subordonnée.
X 152 98 ESS Fin de la valeur de tri secondaire (ISO 6630) Marque la fin d'une chaîne avec une valeur de classement subordonnée.
Oui 153 99 INC Indicateur de caractère non standard (DIN 31626) Identifie un caractère non standard suivant.
Z 154 9A - (réservé)
[ 155 9B - (réservé)
\ 156 9C KWB Début du mot-clé (DIN 31626, ISO 6630) Marque le début d'un mot-clé dans un champ bibliographique.
] 157 9D KWE Fin du mot-clé (DIN 31626, ISO 6630) Marque la fin d'un mot-clé dans un champ bibliographique.
^ 158 9E PSB Début de chaîne de permutation (DIN 31626, ISO 6630) Marque le début d'une chaîne qui doit être permutée au début de l'élément lorsque des références ou des indices sont générés. Terminé par PSE ou par la fin de l'élément.
_ 159 9F EPS Fin de chaîne de permutation (DIN 31626, ISO 6630) Marque la fin d'une chaîne qui doit être permutée à l'avant de l'élément.

Autres jeux de codes de contrôle C1

EBCDIC définit 16 codes de contrôle supplémentaires, en plus de ceux présents en ASCII. Lorsqu'ils sont mappés à Unicode ou à ISO 8859 , ces codes sont mappés aux caractères de contrôle C1 d'une manière spécifiée par l'architecture de représentation des données de caractères (CDRA) d'IBM.

Bien que le mappage par défaut du contrôle New Line (NL) corresponde à la norme ISO/IEC 6429 NEL (0x85 ; bien que son mappage soit parfois échangé avec LF, conformément à la convention de fin de ligne UNIX), le reste des codes de contrôle ne correspond pas à ISO/IEC 6429. Par exemple, le SPS de contrôle EBCDIC (0x09, mappé sur 0x8D) et le PLU de contrôle ECMA-48 (0x8C) sont tous deux utilisés pour commencer un exposant ou terminer un indice, mais ne sont pas mappés l'un à l'autre. EBCDIC mappé en ASCII étendu peut donc être considéré comme ayant son propre ensemble C1, bien qu'il ne soit pas enregistré auprès du registre ISO-IR pour une utilisation avec ISO/IEC 2022 .

Divers jeux de codes de contrôle C1 spécialisés sont enregistrés pour être utilisés par divers formats vidéotex .

Unicode

Unicode réserve 65 points de code dans la catégorie générale "Cc" (contrôle) pour la compatibilité avec ISO/IEC 2022 . Les codes de commande de cette catégorie couvrent U+0000—U+001F (commandes C0), U+007F (supprimer) et U+0080—U+009F (commandes C1). Unicode spécifie uniquement la sémantique pour U+0009—U+000D, U+001C—U+001F et U+0085. Le reste des codes de contrôle est transparent pour Unicode et leur signification est laissée aux protocoles de niveau supérieur.

Unicode n'a pas de points de code de catégorie "Cc" alloués autres que ceux C0 et C1. Cependant, il inclut des caractères effecteurs de format supplémentaires en plus de ceux des jeux de contrôle C0 et C1, tels que les marques, les intégrations, les isolats et les pops pour un formatage bidirectionnel explicite, et le jointeur et le non-jointur à largeur zéro pour contrôler l'utilisation de la ligature. Ceux-ci reçoivent la catégorie générale "Cf" (Format) plutôt que "Cc".

Voir également

Notes de bas de page

Les références