Caractère de remplacement - Substitute character

Un caractère de remplacement (␚) est un caractère de contrôle qui est utilisé pour remplir des caractères vides au cas où ils doivent être envoyés en blocs de taille fixe, et pour remplacer un caractère reconnu invalide ou erroné ou non représentable sur un appareil donné. Il est également utilisé comme séquence d'échappement dans certains langages de programmation .

Dans le jeu de caractères ASCII , ce caractère est codé par le nombre 26 ( 1A hex ). Les claviers standard transmettent ce code lorsque les touches Ctrlet Zsont enfoncées simultanément ( Ctrl+Z , par convention souvent décrit comme ^Z ). Unicode code ce caractère, mais recommande que le caractère de remplacement ( , U+FFFD) soit utilisé à la place pour représenter les entrées non décodables, lorsque le codage de sortie est compatible avec celui-ci.

Les usages

Fin de fichier

Historiquement, sous le moniteur PDP-6 , RT-11 , VMS et TOPS-10 , et dans les premiers systèmes d'exploitation PC CP/M 1 et 2 (et dérivés comme MP/M ), il était nécessaire de marquer explicitement la fin d'un fichier (EOF) car le système de fichiers CP/M n'a pas pu enregistrer lui-même la taille exacte du fichier ; les fichiers étaient alloués dans des extensions (enregistrements) de taille fixe, laissant généralement un espace alloué mais inutilisé à la fin de chaque fichier. Cet espace supplémentaire était rempli de caractères 1A 16 ( hex ) sous CP/M. Les systèmes de fichiers CP/M étendus utilisés par CP/M 3 et versions ultérieures (et leurs dérivés comme Concurrent CP/M , Concurrent DOS et DOS Plus ) prenaient en charge les fichiers à granularité d'octets, ce n'était donc plus une exigence, mais c'est resté comme un convention (en particulier pour les fichiers texte ) afin d'assurer la compatibilité descendante.

Dans CP/M , 86-DOS , MS-DOS , PC DOS , DR-DOS , et leurs divers dérivés, le caractère SUB était également utilisé pour indiquer la fin d'un flux de caractères, et donc utilisé pour terminer la saisie de l'utilisateur dans un fenêtre de ligne de commande (et en tant que telle, souvent utilisée pour terminer la redirection d'entrée de la console, par exemple à l'instigation de COPY CON: TYPEDTXT.TXT).

Bien qu'il ne soit plus techniquement nécessaire d'indiquer la fin d'un fichier, de nombreux éditeurs de texte et langages de programme prennent toujours en charge cette convention, ou peuvent être configurés pour insérer ce caractère à la fin d'un fichier lors de l'édition, ou au moins les gérer correctement dans le texte des dossiers. Dans de tels cas, il est souvent appelé EOF « soft », car il ne représente pas nécessairement la fin physique du fichier, mais plutôt un marqueur indiquant qu'« il n'y a pas de données utiles au-delà de ce point ». En réalité, d'autres données peuvent exister au-delà de ce caractère jusqu'à la fin réelle des données dans le système de fichiers, elles peuvent donc être utilisées pour masquer le contenu du fichier lorsque le fichier est saisi sur la console ou ouvert dans les éditeurs. De nombreuses normes de format de fichier (par exemple PNG ou GIF ) incluent le caractère SUB dans leurs en-têtes pour exécuter précisément cette fonction. Certains formats de fichiers texte modernes (par exemple CSV-1203 ) recommandent toujours d'ajouter un caractère EOF de fin comme dernier caractère du fichier. Cependant, taper Control+ Zn'incorpore pas de caractère EOF dans un fichier sous DOS ou Windows , et les API de ces systèmes n'utilisent pas le caractère pour indiquer la fin réelle d'un fichier.

Certains langages de programmation (par exemple Visual Basic ) ne liront pas au-delà d'un EOF "soft" lors de l'utilisation des primitives de lecture de fichier texte intégrées (INPUT, LINE INPUT, etc.), et des méthodes alternatives doivent être adoptées, par exemple l'ouverture du fichier en mode binaire ou en utilisant l'objet de système de fichiers pour progresser au-delà.

Le caractère 26 a été utilisé pour marquer "Fin de fichier" même si ASCII appelle ce caractère Substitut, et a d'autres caractères pour indiquer "Fin de fichier". Le numéro 28 qui est appelé " File Separator " a également été utilisé à des fins similaires.

Autres utilisations

Dans les systèmes d'exploitation Unix, ce caractère est généralement utilisé pour suspendre le processus interactif en cours d'exécution. Le processus suspendu peut alors être repris en mode premier plan (interactif), ou être amené à reprendre l'exécution en mode arrière-plan , ou être terminé . Lorsqu'il est entré par un utilisateur sur son terminal informatique , le processus de premier plan en cours d'exécution reçoit un signal "d'arrêt terminal" ( SIGTSTP ), ce qui provoque généralement la suspension du processus. L'utilisateur peut ensuite poursuivre l'exécution du processus en utilisant la commande « premier plan » ( fg) ou la commande « arrière plan » ( bg).

Le rapport Unicode Security Considerations recommande ce caractère comme remplacement sûr des caractères non mappables lors de la conversion du jeu de caractères.

Dans de nombreuses interfaces graphiques et applications, Control+ Z( ⌘ Command+ Zsur Mac OS) peut être utilisé pour annuler la dernière action. Dans de nombreuses applications, des actions antérieures à la dernière peuvent également être annulées en appuyant plusieurs fois sur Control+ Z. Control+ Zétait l'une des rares séquences de clavier choisies par les concepteurs de programmes de Xerox PARC pour contrôler l' édition de texte .

Représentation

Représentation ASCII et Unicode de "substitut":

  • Code octal : 32
  • Code décimal : 26
  • Code hexadécimal : 1A, U+001A
  • Symbole mnémotechnique : SUB
  • Valeur binaire : 11010

Voir également

Les références

Lectures complémentaires