Spéciaux (bloc Unicode)

Specials est un court bloc Unicode alloué à la toute fin du plan multilingue de base , à U + FFF0 – FFFF. Sur ces 16 points de code, cinq ont été attribués depuis Unicode 3.0:

  • U + FFF9 ANCRE D'ANNOTATION INTERLINEAIRE , marque le début du texte annoté
  • SÉPARATEUR D'ANNOTATION INTERLINE U + FFFA , marque le début du (des) caractère (s) d'annotation
  • TERMINATEUR D'ANNOTATION INTERLINE U + FFFB , marque la fin du bloc d'annotation
  • U + FFFC CARACTÈRE DE REMPLACEMENT D' OBJET , espace réservé dans le texte pour un autre objet non spécifié, par exemple dans undocument composé.
  • U + FFFD CARACTÈRE DE REMPLACEMENT utilisé pour remplacer un personnage inconnu, non reconnu ou non représentable
  • U + FFFE n'est pas un caractère.
  • U + FFFF n'est pas un caractère.

FFFE et FFFF ne sont pas non attribués au sens habituel du terme, mais garantis de ne pas être du tout des caractères Unicode . Ils peuvent être utilisés pour deviner le schéma de codage d'un texte, car tout texte les contenant n'est par définition pas un texte Unicode correctement codé. Le caractère U + FEFF BYTE ORDER MARK d'Unicode peut être inséré au début d'un texte Unicode pour signaler son endianness : un programme lisant un tel texte et rencontrant 0xFFFE saurait alors qu'il doit changer l'ordre des octets pour tous les caractères suivants.

Son nom de bloc dans Unicode 1.0 était Spécial . [3]

Caractère de remplacement

Le caractère de remplacement (souvent affiché sous la forme d'un losange noir avec un point d'interrogation blanc) est un symbole trouvé dans la norme Unicode au point de code U + FFFD dans le tableau Promotions . Il est utilisé pour signaler des problèmes lorsqu'un système est incapable de restituer un flux de données en un symbole correct. Il est généralement vu lorsque les données sont invalides et ne correspondent à aucun caractère:

Prenons un fichier texte contenant le mot allemand für (signifiant «pour») dans l' encodage ISO-8859-1 ( 0x66 0xFC 0x72). Ce fichier est maintenant ouvert avec un éditeur de texte qui suppose que l'entrée est UTF-8 . Le premier et le dernier octet sont des codages UTF-8 valides d'ASCII, mais l'octet du milieu ( 0xFC) n'est pas un octet valide en UTF-8. Par conséquent, un éditeur de texte peut remplacer cet octet par le symbole de caractère de remplacement pour produire une chaîne valide de points de code Unicode . La chaîne entière s'affiche maintenant comme ceci: "f r".

Un éditeur de texte mal implémenté pourrait enregistrer le remplacement sous la forme UTF-8; les données du fichier texte ressembleront alors à ceci 0x66 0xEF 0xBF 0xBD 0x72:, qui sera affiché dans l'ISO-8859-1 sous la forme "f�r" (cela s'appelle mojibake ). Étant donné que le remplacement est le même pour toutes les erreurs, il est impossible de récupérer le caractère d'origine. Une meilleure conception (mais plus difficile à mettre en œuvre) consiste à conserver les octets d'origine, y compris l'erreur, et à ne les convertir en remplacement que lors de l' affichage du texte. Cela permettra à l'éditeur de texte d'enregistrer la séquence d'octets d'origine, tout en affichant l'indicateur d'erreur à l'utilisateur.

À une certaine époque, le caractère de remplacement était souvent utilisé lorsqu'il n'y avait pas de glyphe disponible dans une police pour ce caractère. Cependant, la plupart des systèmes de rendu de texte modernes utilisent à la place une police Caractère .notdef , qui dans la plupart des cas est une case vide (ou «?» ou «X» dans une case [4] ), parfois appelée « tofu » (ce navigateur affiche ????). Il n'y a pas de point de code Unicode pour ce symbole.

Ainsi, le caractère de remplacement n'est désormais visible que pour les erreurs de codage, telles que UTF-8 invalide. Certains logiciels tentent de masquer cela en traduisant les octets de UTF-8 non valide en caractères correspondants dans Windows-1252 (car c'est la source la plus probable de ces erreurs), de sorte que le caractère de remplacement ne soit jamais vu.

Les documents Unicode suivants enregistrent l'objectif et le processus de définition de caractères spécifiques dans le bloc Specials:

  • Caractères de contrôle Unicode

  1. ^ "Base de données de caractères Unicode" . Le standard Unicode . Récupéré le 09/07/2016 .
  2. ^ "Versions énumérées de la norme Unicode" . Le standard Unicode . Récupéré le 09/07/2016 .
  3. ^ "3.8: Graphiques bloc par bloc" (PDF) . Le standard Unicode . version 1.0. Consortium Unicode .
  4. ^ "Recommandations pour les polices OpenType (OpenType 1.7) - Typographie" . docs.microsoft.com . Récupéré le 18 octobre 2020 .