Résumé

  • Les valeurs 00 à 7F n'appartiennent qu'aux caractères ASCII ; un octet initial annonce la longueur, les octets suivants commencent par 10, et FE comme FF restent exclus.
  • RFC 2044 dit lui-même que l'ordre numérique conservé n'est pas culturellement valable et ne traite pas la sécurité. Le label MIME UTF-8 déclare un codage, il ne certifie ni les octets ni leur interprétation.

Un analyseur ancien pouvait ignorer le japonais ou l'arabe tout en dépendant d'un séparateur ASCII. La difficulté était de transporter un répertoire plus vaste sans fabriquer ce séparateur à l'intérieur d'un caractère inconnu. C'est ce problème de migration, bien plus étroit qu'une histoire générale d'Unicode, que RFC 2044 rend vérifiable.

Unicode 1.1 et ISO/IEC 10646 proposaient UCS-2, tandis qu'ISO 10646 décrivait aussi UCS-4. Les applications conçues pour des caractères de sept ou huit bits ne pouvaient pas adopter simplement des unités fixes de seize ou trente-deux bits. UTF-8 a donc préservé l'interface que ces programmes savaient déjà lire.

Une carte locale inscrite dans chaque séquence

Les caractères ASCII conservent leur octet 0xxxxxxx. Dans une séquence plus longue, le nombre de bits 1 au début du premier octet indique le nombre total d'octets, puis vient un 0. Chaque continuation porte la forme 10xxxxxx. Un lecteur qui arrive au milieu peut franchir les continuations et retrouver le prochain début de caractère.

Cette grammaire explique aussi pourquoi FE et FF n'apparaissent jamais. Mais une frontière retrouvée ne valide pas tout le flux. Le décodeur doit encore vérifier la longueur, la forme des continuations et la valeur reconstruite.

L'exemple « A≢Α. » devient 41 E2 89 A2 CE 91 2E. Le 41 et le 2E restent A et point ASCII. Les octets suffisent à retrouver les valeurs de caractère ; ils ne révèlent pas la langue, la police, l'intention de l'auteur, la normalisation ou la sûreté d'un identifiant.

Un ordre numérique n'est pas un dictionnaire humain

RFC 2044 observe que l'ordre lexicographique des chaînes UCS-4 est conservé. Cette stabilité aide un index binaire. La phrase suivante limite aussitôt sa portée : cet ordre présente peu d'intérêt parce qu'il n'est culturellement valable dans aucune des deux représentations.

Le classement des noms dépend de la langue, des accents, des ligatures, de la casse et d'une politique locale. Un ordre d'octets peut être déterministe sans être un ordre alphabétique légitime. Le RFC n'accorde donc aucune autorité culturelle à la propriété qu'il décrit.

Le nom du charset n'inspecte pas le message

Le document propose UTF-8 comme valeur de charset MIME. MIME fournit l'emplacement du label ; les travaux antérieurs sur Unicode dans MIME distinguaient déjà répertoire, sérialisation en octets et encodage de transfert.

Le label choisit le contrat que le destinataire doit essayer. Il ne détecte pas une séquence tronquée, une forme interdite ou une modification par un relais, et n'authentifie pas celui qui l'a posé. Le registre IANA actuel conserve UTF-8, le MIBenum 106 et l'alias csUTF8, avec RFC 3629 comme référence. C'est une identité de registre, pas un résultat de validation.

La table de 1996 n'est plus l'algorithme d'acceptation

RFC 2044 était Informational et précisait ne définir aucune norme Internet. Le Datatracker le classe aujourd'hui comme Legacy. RFC 2279 l'a remplacé sur la voie des normes, puis RFC 3629 a remplacé RFC 2279.

Le changement est substantiel. RFC 2044 autorisait une à six unités ; RFC 3629 limite UTF-8 à U+10FFFF, à une à quatre unités, exclut les substituts et les formes surlongues. Une séquence de cinq octets peut illustrer l'histoire, elle n'est pas du UTF-8 actuel. L'absence d'erratum RFC 2044 dans la recherche RFC Editor ne renverse pas cette succession.

La sécurité commence au-delà de la promesse de 2044

La section Security Considerations de RFC 2044 indique seulement que les questions de sécurité ne sont pas abordées. RFC 3629 étudiera les séquences illégales, les formes surlongues, les tailles de tampon et les chaînes visuellement équivalentes. RFC 5198 traitera séparément la normalisation NFC.

Préserver ASCII ne prouve donc pas qu'un analyseur est sûr. Une frontière récupérable ne rend pas une séquence valide aujourd'hui. Un texte UTF-8 valide n'est pas nécessairement normalisé, et des points de code valides ne prouvent ni identité, ni glyphes fidèles, ni compréhension.

La lecture de Heng Lu aide à garder cette frontière : une spécification initiale minimale fixe les invariants nécessaires et vérifiables ; le code en service et l'observation prouvent l'adoption ; un document ou un label ne doit pas être promu vers une réalité qu'il ne peut exécuter. La force historique de UTF-8 réside précisément dans cette modestie : protéger la syntaxe ancienne sans gouverner le sens.

Sources