Les codes de contrôle ou jeux de caractères de contrôle C0 et C1 définissent les codes de contrôle à utiliser dans le texte par les systèmes informatiques qui utilisent l'ASCII ...
Worldlex WikiFrancaisLecture gratuite
Les codes de contrôle ou jeux de caractères de contrôle C0 et C1 définissent les codes de contrôle à utiliser dans le texte par les systèmes informatiques qui utilisent l'ASCII et ses dérivés. Les codes représentent des informations supplémentaires sur le texte, telles que la position d'un curseur, une instruction de démarrage d'une nouvelle ligne ou un message indiquant que le texte a été reçu.
Les codes C0 sont compris entre 00 HEX et 1F HEX et le jeu C0 par défaut a été défini à l'origine dans la norme ISO 646 ( ASCII ). Les codes C1 sont compris entre 80 HEX et 9F HEX et le jeu C1 par défaut a été défini à l'origine dans la norme ECMA-48 (harmonisée ultérieurement avec la norme ISO 6429). Le système ISO/IEC 2022 de spécification des caractères de contrôle et graphiques permet d'utiliser d'autres jeux C0 et C1 pour des applications spécialisées, mais ils sont rarement utilisés.
Contrôles C0
L'ASCII définit 32 caractères de contrôle, plus un caractère supplémentaire nécessaire pour le caractère DEL, 7F HEX ou 01111111 BIN (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 contrôles multi-octets nécessitaient l'implémentation d'une machine à états dans le terminal, ce qui était très difficile avec l'électronique contemporaine et les terminaux mécaniques.
Seuls quelques codes ont conservé leur utilisation : BEL, ESC et les caractères effecteurs de format (FE n ) BS, TAB, LF, VT, FF et CR. D'autres ne sont pas utilisés ou ont acquis des significations différentes, comme NUL qui est le terminateur de chaîne C. Certains protocoles de transfert de données tels que ANPA-1312 , Kermit et XMODEM font un usage intensif de SOH, STX, ETX, EOT, ACK, NAK et SYN à des fins d'approximation de leurs définitions originales ; et certains formats de fichiers utilisent les « séparateurs d'informations » (IS n ) tels que le format info Unix et la méthode de chaîne splitlines de Python .
Les noms de certains codes ont été modifiés dans la norme ISO 6429:1992 (ou ECMA-48:1991) pour être neutres par rapport au sens d'écriture. Les abréviations utilisées n'ont pas été modifiées, car la norme avait déjà spécifié qu'elles resteraient inchangées lors de la traduction de la norme dans d'autres langues. Dans ce tableau, les noms nouveaux et anciens sont indiqués pour les commandes renommées (l'ancien nom est celui qui correspond à l'abréviation).
Unicode fournit des images de contrôle qui peuvent remplacer les caractères de contrôle C0 pour les rendre visibles à l'écran. Cependant, la notation caret est utilisée plus souvent.
Contrôles C1
En 1973, les normes ECMA-35 et ISO 2022 ont tenté de définir une méthode permettant de convertir un code « ASCII étendu » de 8 bits en un code correspondant de 7 bits, et vice versa . Dans un environnement à 7 bits, le Shift Out ( SO ) modifierait la signification des 96 octets 0x20 à 0x7F (c'est-à-dire tous les codes de contrôle sauf C0), pour qu'ils soient les caractères qu'un environnement à 8 bits imprimerait s'il utilisait le même code avec le bit le plus élevé défini. Cela signifiait que la plage 0x80 à 0x9F ne pouvait pas être imprimée dans un environnement à 7 bits, il a donc été décidé qu'aucun autre jeu de caractères ne pouvait les utiliser, et que ces codes devaient être des codes de contrôle supplémentaires, qui sont devenus connus sous le nom de codes de contrôle C1 . Pour permettre à un environnement à 7 bits d'utiliser ces nouveaux contrôles, les séquences à travers devaient être considérées comme équivalentes. Les normes ISO 8859 ultérieures ont abandonné la prise en charge des codes à 7 bits, mais ont conservé cette gamme de caractères de contrôle. ESC @ESC _
Le premier ensemble de codes de contrôle C1 à être enregistré pour une utilisation avec la norme ISO 2022 était DIN 31626 , un ensemble spécialisé à usage bibliographique qui a été enregistré en 1979.
L'ensemble de normes ISO/IEC 6429, plus couramment utilisé, a été enregistré en 1983, bien que la spécification ECMA-48 sur laquelle il était basé ait été publiée pour la première fois en 1976 et JIS X 0211 (anciennement JIS C 6323). Les noms symboliques définis par la RFC 1345 et les premières versions de l'ISO 10646, mais pas dans l'ISO/IEC 6429 ( PAD , HOP et SGC ), sont également utilisés.
À l'exception de SS2 et SS3 dans le texte EUC-JP et de NEL dans le texte transcodé à partir d' EBCDIC , les formes 8 bits de ces codes n'ont presque jamais été 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. De nos jours, si ces codes sont rencontrés, il est beaucoup plus probable qu'ils soient destinés à imprimer des caractères à partir de cette position de Windows-1252 ou de Mac OS Roman .
À l'exception de NEL, Unicode ne fournit pas d'« image de contrôle » pour aucun de ces éléments. Il n'existe pas non plus de variante bien connue de la notation Caret pour ces éléments.
Autres ensembles de codes de contrôle
Le mécanisme d'extension ISO/IEC 2022 (ECMA-35) permettait aux séquences d'échappement de modifier les jeux C0 et C1. Le jeu de caractères de contrôle standard C0 illustré ci-dessus est choisi avec la séquence ESC ! @et le jeu C1 ci-dessus est choisi avec la séquence ESC " C.
Plusieurs alternatives officielles et non officielles ont été définies, mais cela est pratiquement obsolète. La plupart ont été forcées de conserver une bonne compatibilité avec les contrôles ASCII pour l'interopérabilité. La norme fait des caractères codés « fixes » ESC, SP et DEL , qui sont disponibles dans leurs emplacements ASCII dans tous les codages conformes à la norme. Elle spécifie également que si un ensemble C0 comprenait des codes de contrôle de transmission (TC n ), ils doivent être codés à leurs emplacements ASCII et ne peuvent pas être placés dans un ensemble C1, et tout nouveau contrôle de transmission doit être dans un ensemble C1.
Autres ensembles de codes de contrôle C0
ANPA-1312 , un langage de balisage de texte utilisé pour la transmission de nouvelles, remplace plusieurs caractères de contrôle C0.
L'IPTC 7901 , la version internationale la plus récente de la norme ci-dessus, a ses propres variantes.
Le vidéotex dispose d'un ensemble complètement différent.
Le télétexte définit également un ensemble similaire au vidéotex.
T.61 / T.51 , et d'autres ont remplacé EM et GS par SS2 et SS3 afin que ces fonctions puissent être utilisées dans un environnement 7 bits.
Certains ensembles ont remplacé FS par SS2, (identique à ANPA-1312).
La norme JIS C 6225, désormais retirée, désignée JIS X 0207 dans des sources ultérieures. a remplacé FS par CEX ou « Control Extension » qui introduit des séquences de contrôle pour le comportement du texte vertical, les exposants et les indices et pour la transmission de graphiques de caractères personnalisés .
Jeux de caractères C1 de remplacement
Un ensemble de codes de contrôle C1 spécialisé est enregistré pour une utilisation bibliographique (y compris le classement des chaînes), comme par exemple MARC-8 .
Différents ensembles de codes de contrôle C1 spécialisés sont enregistrés pour être utilisés par les formats Vidéotex .
L'EBCDIC définit jusqu'à 29 codes de contrôle supplémentaires en plus de ceux présents dans l'ASCII. Lors de la traduction de l'EBCDIC en Unicode (ou en 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 New Line (NL) soit traduit en NEL ISO/IEC 6429 (bien qu'il soit souvent échangé avec LF, conformément à la convention de fin de ligne UNIX), le reste des codes de contrôle ne correspond pas. Par exemple, le SPS de contrôle EBCDIC et le PLU de contrôle ECMA-48 sont tous deux utilisés pour commencer un exposant ou terminer un indice, mais ne sont pas mappés l'un à l'autre. L'EBCDIC mappé en ASCII étendu peut donc être considéré comme ayant son propre ensemble C1, bien qu'il ne soit pas enregistré dans le registre ISO-IR pour l'ISO/IEC 2022.
Unicode
Unicode réserve les 65 points de code décrits ci-dessus pour la compatibilité avec les codes de contrôle C0 et C1, leur attribuant la catégorie généraleCc (contrôle). Il s'agit de :
Unicode ne spécifie la sémantique que pour les contrôles de format C0 HT, LF, VT, FF et CR (notez que BS est manquant) ; les séparateurs d'informations C0 FS, GS, RS, US (et SP) ; et le contrôle C1 NEL. Le reste des codes est transparent pour Unicode et leurs significations sont laissées aux protocoles de niveau supérieur, avec ISO/IEC 6429 suggéré comme valeur par défaut.
Unicode inclut de nombreux caractères effecteurs de format supplémentaires en plus de ceux-ci, tels que les marques, les incorporations, les isolats et les pops pour un formatage bidirectionnel explicite, ainsi que le joiner et le non-joiner de largeur nulle pour contrôler l'utilisation des ligatures. Cependant, ceux-ci sont classés dans la catégorie générale (format) plutôt que dans la catégorie . CfCc