Les jeux de caractères de contrôle C0 et C1 définissent les codes de contrôle utilisés dans le texte par les systèmes informatiques qui utilisent l'ASCII et ses dérivés. Ces cod...
Worldlex WikiFrancaisLecture gratuite
Les jeux de caractères de contrôle C0 et C1 définissent les codes de contrôle utilisés dans le texte par les systèmes informatiques qui utilisent l'ASCII et ses dérivés. Ces codes représentent des informations supplémentaires sur le texte, comme la position du curseur, l'instruction de commencer une nouvelle ligne ou un message confirmant la réception du texte.
Les codes C0 couvrent la plage 00 HEX – 1F HEX et le jeu C0 par défaut a été initialement défini dans la norme ISO 646 ( ASCII ). Les codes C1 couvrent la plage 80 HEX – 9F HEX et le jeu C1 par défaut a été initialement défini 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 autorise d'autres jeux C0 et C1 pour des applications spécifiques, mais ceux-ci sont rarement utilisés.
Contrôles C0
L'ASCII définit 32 caractères de contrôle, plus le caractère DEL. Ce grand nombre de codes était souhaitable à l'époque, car les contrôles multi-octets auraient nécessité l'implémentation d'une machine à états dans le terminal, ce qui était très difficile avec l'électronique et les terminaux mécaniques de l'époque.
Seuls quelques codes ont conservé leur usage : BEL, ESC et les caractères d’effecteur de format (FE<sub> n</sub> ) BS, HT, LF, VT, FF et CR. D’autres sont inutilisés ou ont acquis des significations différentes, comme NUL qui est devenu le terminateur de chaîne en C. Certains protocoles de transfert de données, tels que ANPA-1312 , Kermit et XMODEM , utilisent largement SOH, STX, ETX, EOT, ACK, NAK et SYN pour se rapprocher de leurs définitions originales ; et certains formats de fichiers utilisent les « séparateurs d’information » (IS<sub> n</sub> ), comme le format info d’Unix et la méthode splitlines de Python .
Dans la norme ISO 6429:1992 (ou ECMA-48:1991), le nom de certains codes a été modifié afin d'être neutre quant au sens d'écriture. Les abréviations utilisées sont restées inchangées, la norme ayant déjà précisé qu'elles demeureraient identiques lors de sa traduction dans d'autres langues. Le tableau ci-dessous présente les anciens et nouveaux noms des commandes renommées (l'ancien nom correspond à l'abréviation).
En 1973, les normes ECMA-35 et ISO 2022 ont tenté de définir une méthode permettant de convertir un code ASCII étendu 8 bits en son équivalent 7 bits, et inversement . Dans un environnement 7 bits, l'instruction Shift Out ( SO ) modifiait la signification des 96 octets de 0x20 à 0x7F (c'est-à-dire tous les codes de contrôle à l'exception des codes C0), afin qu'ils correspondent aux caractères qu'un environnement 8 bits afficherait en utilisant le même code avec le bit de poids fort à 1. De ce fait, la plage de caractères de 0x80 à 0x9F ne pouvait pas être affichée dans un environnement 7 bits . Il a donc été décidé qu'aucun jeu de caractères alternatif ne pourrait les utiliser et que ces codes constitueraient des codes de contrôle supplémentaires, appelés codes de contrôle C1 . Pour permettre à un environnement 7 bits d'utiliser ces nouveaux contrôles, les séquences correspondantes 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 préservé 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 l'ISO 2022 était DIN 31626 , un ensemble spécialisé pour une utilisation bibliographique qui a été enregistré en 1979.
La norme ISO/IEC 6429, plus largement utilisée, a été enregistrée en 1983 , bien que la spécification ECMA-48 sur laquelle elle s'appuie ait été publiée pour la première fois en 1976 , ainsi que la norme 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 absents de l'ISO/IEC 6429 ( PAD , HOP et SGC ), sont également utilisés
À l'exception de SS2 et SS3 dans les textes EUC-JP , et de NEL dans les textes transcodés depuis EBCDIC , les formes 8 bits de ces codes étaient quasiment inutilisées. CSI , DCS et OSC servent à contrôler les terminaux texte et les émulateurs de terminaux , mais presque toujours via leurs représentations en code d'échappement 7 bits. De nos jours, si l'on rencontre ces codes, il est bien plus probable qu'ils servent à imprimer des caractères à partir de la position correspondante dans Windows-1252 ou Mac OS Roman .
À l'exception de NEL , Unicode ne fournit pas d'« image de contrôle » pour ces caractères. Il n'existe pas non plus de variante connue de la notation Caret pour ceux-ci.
! @
Plusieurs alternatives officielles et non officielles ont été définies, mais elles sont aujourd'hui largement obsolètes. La plupart ont dû conserver une compatibilité importante avec les commandes ASCII pour assurer l'interopérabilité. La norme considère les caractères ESC SP et DEL comme des caractères codés « fixes », disponibles à leurs emplacements ASCII dans tous les encodages conformes à la norme . Elle spécifie également que si un ensemble C0 inclut des codes de contrôle de transmission (TCn ) , ceux-ci doivent être encodés à leurs emplacements ASCII et ne peuvent pas être placés dans un ensemble C1 , et que tout nouveau code de contrôle de transmission doit être placé dans un ensemble C1
Jeux de caractères C0 alternatifs
ANPA-1312 , un langage de balisage de texte utilisé pour la transmission d'informations, remplace plusieurs caractères de contrôle C0.
La norme IPTC 7901 , version internationale plus récente de la norme ci-dessus, présente ses propres variantes.
Videotex possède 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 sans recourir à des séquences d'échappement .
Certains ensembles ont remplacé FS par SS2, (identique à ANPA-1312).
La norme JIS C 6225, désormais retirée et désignée JIS X 0207 dans des sources ultérieures , a remplacé FS par CEX ou « Extension de contrôle » , 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 alternatifs
Un jeu de codes de contrôle C1 spécialisé est enregistré pour l'utilisation bibliographique (y compris le classement de chaînes), comme par exemple par MARC-8 .
Divers jeux de codes de contrôle C1 spécialisés sont enregistrés pour être utilisés par les formats Videotex .
Le système d'exploitation Stratus VOS utilise un jeu de commandes C1 appelé jeu de commandes NLS . Ce jeu comprend les commandes SS1 (Single-Shift 1) à SS15 (Single-Shift 15) , utilisées pour appeler des caractères individuels à partir de jeux de caractères supplémentaires prédéfinis , de manière similaire au mécanisme de décalage simple de la norme ISO/IEC 2022. Les seules commandes de décalage simple définies par la norme ISO/IEC 2022 sont SS2 et SS3 ; celles-ci sont conservées dans le jeu VOS à leurs points de code d'origine et fonctionnent de la même manière.
EBCDIC définit jusqu'à 29 codes de contrôle supplémentaires par rapport à ceux présents en ASCII. Lors de la conversion d'EBCDIC en Unicode (ou en ISO 8859 ), ces codes sont mappés sur les caractères de contrôle C1 selon les spécifications de l'architecture de représentation des données de caractères (CDRA) d'IBM. Bien que le caractère de nouvelle ligne (NL) soit traduit par le caractère NEL de la norme ISO/IEC 6429 (bien qu'il soit souvent remplacé par LF, conformément à la convention de fin de ligne UNIX), les autres codes de contrôle ne correspondent pas. Par exemple, les codes de contrôle SPS (EBCDIC) et PLU (ECMA-48) sont tous deux utilisés pour commencer un exposant ou terminer un indice, mais ne sont pas mappés l'un sur l'autre. L'EBCDIC mappé en ASCII étendu peut donc être considéré comme possédant son propre jeu de caractères C1, bien qu'il ne soit pas enregistré auprès du registre ISO-IR pour la norme ISO/IEC 2022.
Unicode spécifie uniquement la sémantique des contrôles de format C0 HT, LF, VT, FF et CR (BS est absent) ; des séparateurs d’information C0 FS, GS, RS, US (et SP) ; et du contrôle C1 NEL. Les autres codes sont transparents pour Unicode et leur signification est laissée aux protocoles de niveau supérieur, la norme ISO/IEC 6429 étant suggérée par défaut.
Unicode inclut de nombreux caractères d'effet de formatage supplémentaires, tels que les marques, les caractères d'inclusion, les caractères isolés et les caractères pop pour un formatage bidirectionnel explicite, ainsi que les caractères de liaison et de non-liaison de largeur nulle pour contrôler l'utilisation des ligatures. Cependant, ces caractères sont classés dans la catégorie générale (format) plutôt que dans la catégorie spécifique .