L'ISO/IEC 646 est un ensemble de normes ISO/IEC , décrites comme Technologies de l'information — Jeu de caractères codés ISO à 7 bits pour l'échange d'informations , et développées en coopération avec l'ASCII au moins depuis 1964. Depuis sa première édition en 1967 elle spécifie un code de caractères à 7 bits à partir duquel plusieurs normes nationales sont dérivées.
La norme ISO/IEC 646 a également été ratifiée par l'ECMA sous le nom d' ECMA-6 . La première version de l'ECMA-6 avait été publiée en 1965, sur la base des travaux menés par le Comité technique TC1 de l'ECMA depuis décembre 1960.
Les caractères du jeu de caractères de base ISO/IEC 646 sont des caractères invariants . Étant donné que cette partie de l'ISO/IEC 646, qui est le jeu de caractères invariant partagé par tous les pays, ne spécifiait que les lettres utilisées dans l' alphabet latin de base ISO , les pays utilisant des lettres supplémentaires devaient créer des variantes nationales de l'ISO/IEC 646 pour pouvoir utiliser leurs écritures natives. La transmission et le stockage des codes à 8 bits n'étant pas standard à l'époque, les caractères nationaux devaient être adaptés aux contraintes de 7 bits, ce qui signifie que certains caractères qui apparaissent en ASCII n'apparaissent pas dans d'autres variantes nationales de l'ISO/IEC 646.
Histoire

La norme ISO/IEC 646 et son prédécesseur ASCII (ASA X3.4) ont largement approuvé les pratiques existantes concernant les codages de caractères dans le secteur des télécommunications .

Comme l'ASCII ne fournissait pas un certain nombre de caractères nécessaires pour d'autres langues que l'anglais, un certain nombre de variantes nationales ont été créées, remplaçant certains caractères moins utilisés par d'autres caractères nécessaires. En raison de l'incompatibilité des diverses variantes nationales, une version de référence internationale (IRV) de l'ISO/CEI 646 a été introduite, dans le but de limiter au moins l'ensemble remplacé aux mêmes caractères dans toutes les variantes. La version originale (ISO 646 IRV) ne différait de l'ASCII que par le point de code 0x24, le signe dollar de l'ASCII ($) étant remplacé par le symbole monétaire international (¤). La version finale de 1991 du code ISO/CEI 646:1991 est également connue sous le nom d' ITU T.50 , Alphabet international de référence ou IRA, anciennement Alphabet international n° 5 (IA5). Cette norme permet aux utilisateurs d'utiliser les 12 caractères variables (c'est-à-dire deux caractères graphiques alternatifs et 10 caractères nationaux définis). Parmi ces exercices, l'ISO 646:1991 IRV (International Reference Version) est explicitement définie et identique à l'ASCII .
La série de normes ISO/IEC 8859 régissant les codages de caractères sur 8 bits remplace la norme internationale ISO/IEC 646 et ses variantes nationales, en fournissant 96 caractères supplémentaires avec le bit supplémentaire et en évitant ainsi toute substitution de codes ASCII. La norme ISO/IEC 10646 , directement liée à Unicode , remplace tous les ensembles ISO646 et ISO/IEC 8859 par un ensemble unifié de codages de caractères utilisant une valeur plus élevée de 21 bits.

L'héritage de la norme ISO/IEC 646 est visible sur Windows, où dans de nombreux pays d'Asie de l'Est, le caractère barre oblique inverse utilisé dans les noms de fichiers est rendu par ¥ ou d'autres caractères tels que ₩ . Malgré le fait qu'un code différent pour ¥ était disponible même sur la page de codes 437 de l'IBM PC d'origine , et qu'un code à deux octets distinct pour ¥ est disponible dans Shift JIS (bien que cela utilise souvent un mappage alternatif ), tant de texte a été créé avec le code barre oblique inverse utilisé pour ¥ (en raison du fait que Shift_JIS est officiellement basé sur la norme ISO 646:JP, bien que Microsoft le mappe en ASCII) que même les polices Windows modernes ont jugé nécessaire de rendre le code de cette façon. Une situation similaire existe avec ₩ et EUC-KR . Un autre héritage est l'existence de trigrammes dans le langage de programmation C.
Normes publiées
- ECMA-6 (1965-04-30), première édition (retirée)
- ISO/R646-1967 (retirée), ou ECMA-6 (1967-06), deuxième édition (retirée)
- ECMA-6 (1970-07), troisième édition (retirée)
- ISO 646:1972 (annulée), ou ECMA-6 (1973-08), quatrième édition (annulée)
- ISO 646:1983 (annulée), ou ECMA-6 (1984-12, 1985-03), cinquième édition (annulée)
- Recommandation UIT-T T.50 IA5 (1988-11-25) (retirée), ou ISO/CEI 646:1991 (en vigueur), ou ECMA-6 (1991-12, 1997-08), sixième édition (en vigueur)
- Recommandation UIT-T T.50 IRA (1992-09-18) (en vigueur)
Disposition de la page de code
Le tableau suivant présente le jeu de caractères invariants ISO/IEC 646. Chaque caractère est indiqué avec son équivalent Unicode . Les points de code nationaux sont grisés avec le caractère ASCII remplacé. Le jaune indique un caractère qui, dans certaines régions, pourrait être combiné avec un caractère précédent comme signe diacritique à l'aide du caractère de retour arrière , ce qui peut affecter le choix du glyphe .
En plus des restrictions d'ensemble invariantes, 0x23 est limité à # ou £ et 0x24 est limité à $ ou ¤ dans ECMA-6:1991, équivalent à ISO/IEC 646:1991. Cependant, ces restrictions ne sont pas suivies par toutes les variantes nationales.
Codes et descriptions des variantes
Variantes nationales de la norme ISO/IEC 646
Certaines variantes nationales de la norme ISO/IEC 646 sont les suivantes :
Dérivés nationaux
Il existe également certains jeux de caractères nationaux basés sur la norme ISO/IEC 646 mais qui ne suivent pas strictement son ensemble invariant (voir également § Dérivés pour d'autres alphabets) :
Caractères de contrôle
Toutes les variantes répertoriées ci-dessus sont uniquement des jeux de caractères graphiques et doivent être utilisées avec un jeu de caractères de contrôle C0 tel que répertorié dans le tableau suivant :
Jeux de caractères supplémentaires associés
Le tableau suivant répertorie les jeux de caractères graphiques supplémentaires définis par la même norme que les variantes spécifiques de la norme ISO/IEC 646. Ceux-ci peuvent être sélectionnés à l'aide d'un mécanisme tel que le décalage ou le super décalage NATS (décalage unique), ou en définissant le huitième bit dans les environnements où il est disponible :
Tableau comparatif des variantes
Les spécificités des modifications apportées à certaines de ces variantes sont présentées dans le tableau suivant. Les attributions de caractères inchangées dans toutes les variantes répertoriées (c'est-à-dire qui restent identiques à l'ASCII) ne sont pas indiquées.
Pour faciliter la comparaison, les variantes détaillées incluent les variantes nationales de la norme ISO/IEC 646, la série NRCS ( National Replacement Character Set ) étroitement liée de DEC utilisée sur les terminaux VT200 , la série de codages télétexte du système mondial européen associée définie dans la norme ETS 300 706, et quelques autres codages étroitement liés basés sur la norme ISO/IEC 646. Les tableaux de codes individuels sont liés à partir de la deuxième colonne. Les cellules avec un arrière-plan non blanc soulignent les différences par rapport à l'US-ASCII (également le sous-ensemble latin de base de la norme ISO/IEC 10646 et Unicode).
Plusieurs caractères peuvent être utilisés comme caractères combinatoires , lorsqu'ils sont précédés ou suivis d'un contrôle de retour arrière
C0 . Ceci est attesté dans les tableaux de codes pour IRV, GB, FR1, CA et CA2, qui notent qu'ils "',^se comporteraient comme un tréma , un accent aigu , une cédille et un accent circonflexe (plutôt que comme des guillemets , une virgule et une pointe de flèche vers le haut ) lorsqu'ils sont précédés ou suivis d'un contrôle de retour arrière. Le caractère tilde (~) a également été introduit comme signe diacritique (˜). Cette méthode de codage est née à l'époque des machines à écrire/ télétypes , lorsque l'utilisation du contrôle de retour arrière surestimait un glyphe, et peut être considérée comme obsolète .
Plus tard, lorsque des jeux de caractères plus larges ont gagné en acceptation, la norme ISO/IEC 8859 , les jeux de caractères spécifiques aux fournisseurs et finalement Unicode sont devenus les méthodes préférées de codage de la plupart de ces variantes.