ISO/CEI 646

norme ISO et CEI

L'ISO/CEI 646 (ICS n°35.040) est une norme ISO qui depuis 1972 spécifie des codes de caractères graphiques codés sur 7 bits à partir desquels plusieurs normes nationales sont dérivées. La plus connue d'entre elles est la variante américaine, communément (mais improprement) désignée « ASCII ». L'ISO 646 est également désigné comme l'« Alphabet international de référence n°5 » (AIR5), « Alphabet international n°5 » (AI5) ou encore (en anglais) « International Alphabet No. 5 » (IA5).

Il est similaire, si ce n'est très proche ou identique au standard ECMA-6[1].

Généralités

modifier

Puisque la portion d’ISO/CEI 646 partagée par tous les pays n’est constituée que des lettres de l’alphabet latin de base suffisant pour l’anglais moderne, les autres langues utilisant un alphabet latin plus étendu ont eu besoin de créer des extensions et des variantes nationales de l’ISO 646 dans le but d'utiliser les lettres spécifiques à leurs langues.

L’ISO 646 normalise donc les variantes nationales autorisées pour les jeux européens à caractères latins, permettant de créer un jeu de 94 caractères graphiques (numérotés de 33 à 126) comprenant 82 caractères invariants entre toutes les versions nationales, et 12 positions utilisables pour les caractères (alphabétiques ou non) nécessaires à une langue ou un groupe de langues. Il fixe également un alphabet international de référence (IRV) servant de guide (non impératif) pour le placement des 1 à 12 caractères sélectionnés sur les 12 positions variantes.

Les jeux ISO 646 incomplets sont autorisés (toutefois la plupart des jeux approuvés et inscrits dans le registre ISO-IR complètent les positions libres par les caractères du jeu de référence (similaire au jeu retenu pour la norme américaine, mais restreint aux seules 94 positions graphiques de la plage de code G0 définie par la norme de codage ISO/CEI 2022 avec laquelle la norme ISO 646 est totalement compatible).

Plus tard, lorsque les jeux de caractères composés de 8 bits devinrent plus fréquents, la norme ISO/CEI 8859 fut alors préférée à ces variantes nationales du jeu latin codé sur 7 bits, en imposant le choix de la variante ISO 646/IRV (c’est-à-dire le jeu graphique à 94 éléments enregistré sous le numéro ISO-IR/002) improprement appelée ASCII (qui désigne en fait le jeu de caractères latins américains codé sur 7 bits, complété du jeu de caractères de contrôles ISO 646/C0 (ISO-IR/001) pour les 32 premières positions). Toutefois, le développement de jeux de caractères plus étendu (sur 8 bits, et parfois avec des plans de codes multiples pour chaque bloc de 32, 94 ou 96 codes) s’est fondé sur la norme ISO/CEI 2022 permettant de les rendre compatibles avec un codage sur 7 bits, grâce à un système de séquences d’échappement et certains caractères de contrôle normalisés.

Les normes ISO 646 et ISO 8859 sont en principe figées depuis juin 2004 (la normalisation internationale de nouveaux jeux à 7 et 8 bits est désormais arrêtée, le groupe de travail de l’ISO ayant suspendu ses activités) et sont destinées à être remplacées par la nouvelle norme plus complète et plus précise ISO/CEI 10646 (liée à Unicode) dont l’interprétation et l’interopérabilité sont bien meilleures, cette dernière norme permettant de représenter tous les autres jeux de caractères normalisés existants et d’affiner le codage effectif final tout en préservant la sémantique du texte codé et en améliorant sa typographie. L’ISO/CEI 10646 a gardé la compatibilité ascendante avec la vieillissante norme ISO 646.

Caractères invariants

modifier

Les positions invariantes des jeux de caractères graphiques latins compatibles avec l’ISO 646 sont les suivantes :

CodesCar.Nom
binairedéc.hexa.
010 00003220espace
010 00013321!point d’exclamation
010 00103422"guillemet anglais
 
010 01013725%signe pour cent
010 01103826&esperluette
010 01113927'apostrophe
010 10004028(parenthèse ouvrante
010 10014129)parenthèse fermante
010 1010422A*astérisque
010 1011432B+signe plus
010 1100442C,virgule
010 1101452D-trait d’union-signe moins
010 1110462E.point
010 1111472F/barre oblique
CodesCar.Nom
binairedéc.hexa.
011 000048300chiffre zéro
011 000149311chiffre un
011 001050322chiffre deux
011 001151333chiffre trois
011 010052344chiffre quatre
011 010153355chiffre cinq
011 011054366chiffre six
011 011155377chiffre sept
011 100056388chiffre huit
011 100157399chiffre neuf
011 1010583A:deux-points
011 1011593B;point-virgule
011 1100603C<signe inférieur à
011 1101613D=signe égal à
011 1110623E>signe supérieur à
011 1111633F?point d’interrogation
CodesCar.Nom
binairedéc.hexa.
100 00016541AA (lettre) latine capitale A
100 00106642Blettre latine capitale B
100 00116743Clettre latine capitale C
100 01006844Dlettre latine capitale D
100 01016945Elettre latine capitale E
100 01107046Flettre latine capitale F
100 01117147Glettre latine capitale G
100 10007248Hlettre latine capitale H
100 10017349Ilettre latine capitale I
100 1010744AJlettre latine capitale J
100 1011754BKlettre latine capitale K
100 1100764CLlettre latine capitale L
100 1101774DMlettre latine capitale M
100 1110784ENlettre latine capitale N
100 1111794FOlettre latine capitale O
101 00008050Plettre latine capitale P
101 00018151Qlettre latine capitale Q
101 00108252Rlettre latine capitale R
101 00118353Slettre latine capitale S
101 01008454Tlettre latine capitale T
101 01018555Ulettre latine capitale U
101 01108656Vlettre latine capitale V
101 01118757Wlettre latine capitale W
101 10008858Xlettre latine capitale X
101 10018959Ylettre latine capitale Y
101 1010905AZlettre latine capitale Z
 
101 1111955F_tiret bas
CodesCar.Nom
binairedéc.hexa.
110 00019761alettre latine minuscule a
110 00109862blettre latine minuscule b
110 00119963clettre latine minuscule c
110 010010064dlettre latine minuscule d
110 010110165elettre latine minuscule e
110 011010266flettre latine minuscule f
110 011110367glettre latine minuscule g
110 100010468hlettre latine minuscule h
110 100110569ilettre latine minuscule i
110 10101066Ajlettre latine minuscule j
110 10111076Bklettre latine minuscule k
110 11001086Cllettre latine minuscule l
110 11011096Dmlettre latine minuscule m
110 11101106Enlettre latine minuscule n
110 11111116Folettre latine minuscule o
111 000011270plettre latine minuscule p
111 000111371qlettre latine minuscule q
111 001011472rlettre latine minuscule r
111 001111573slettre latine minuscule s
111 010011674tlettre latine minuscule t
111 010111775ulettre latine minuscule u
111 011011876vlettre latine minuscule v
111 011111977wlettre latine minuscule w
111 100012078xlettre latine minuscule x
111 100112179ylettre latine minuscule y
111 10101227Azlettre latine minuscule z

Variantes nationales de l’ISO 646

modifier

De nombreuses variantes de l’ISO 646 ont été normalisées par des organismes nationaux officiels, et la plupart ont alors été déclarées dans le registre international (ISO-IR) des jeux de caractères à 7 et 8 bits. Cependant ce registre est maintenant clos depuis , ses membres ayant décidé de concentrer leurs efforts au maintien de la norme universelle ISO/CEI 10646.

D’autres variantes ont été développées de façon initialement propriétaire pour couvrir les besoins de certaines langues, avant d’être enregistrées publiquement avec l’appui d’organismes de normalisation officiels (notamment l’ECMA au niveau européen, afin de stabiliser les tables de conversions). Il existe cependant de nombreuses variantes propriétaires n’ayant pas reçu cet appui et qui donc n'ont pas été enregistrées formellement par l’ISO-IR (et dans l’immédiat, ne le seront sans doute jamais, leur obsolescence étant très accélérée du fait de l’imprécision de leur définition et de l’obsolescence parallèle des systèmes qui les supportaient).

Parmi les normes nationales enregistrées pour les variantes de l’ISO/CEI 646 on trouve :

CodeISO-
IR
NormeUtilisation
CA-1121CSA Z243.4-1985Canada (alternative no.1, avec “î”)
(français classique)
CA-2122CSA Z243.4-1985Canada (alternative no.2, avec “É”)
(français orthographe réformée)
CN057GB/T 1988-80Chine (latin basique)
CU151NC 99-10:81Cuba (espagnol)
DE021DIN 66083Allemagne (allemand)
DKDS 2089Danemark (danois)
FR069AFNOR NF Z 62010-1982France (français)
FR-0025AFNOR NF Z 62010-1973France (obsolète depuis )
GB004BSI 4730Royaume-Uni (anglais)
GR088HOS ELOTGrèce (obsolète)
HU086MSZ 7795/3Hongrie
IE207NSAI 433:1996Irlande (gaélique irlandais)
 
CodeISO-
IR
NormeUtilisation
INV170ISO 646:1983International (jeu graphique invariant)
IRV002ISO 646:1983International (jeu graphique de référence)
JA014JIS C 6220-1969Japon (romaji)
JA-O092JIS C 6229-1984Japon (OCR-B)
KRKS C 5636-1989Corée du Sud (coréen romanisé)
MT Malte (maltais)
NO060NS 4551 version 1Norvège
NO-2061NS 4551 version 2Norvège (obsolète depuis )
SE010SEN 85 02 00 annexe BSuède (suédois de base)
SE-C011SEN 85 02 00 annexe CSuède (suédois étendu pour les noms)
T.61102ITU/CCITT Recommandation T.61International (Télétex)
US006ANSI X3.4-1968États-Unis (ASCII)
YU141JUS I.B1.002ex-Fédération de Yougoslave (croate, slovène, serbe latin)

Parmi les normes initialement propriétaires finalement approuvées au niveau international pour l’interopérabilité grâce au support d'un organisme de normalisation, on trouve :

CodeISO-
IR
NormalisationOrigineUtilisation
ES085ECMAIBMEspagne (basque, castillan, catalan, galicien)
esp017ECMAOlivettiEspagnol (international)
DK-SE009-1SSKNATS, jeu principalSuède et Danemark (texte journalistique)
FI-SE008-1SSKNATS, jeu principalSuède et Finlande (texte journalistique)
 
CodeISO-
IR
NormalisationOrigineUtilisation
INIS049AIEAINISSous-ensemble de l’IRV pour l’échange de données bibliographiques
ita015ECMAOlivettiItalien
PT084ECMAIBMPortugal (portugais, espagnol)
por016ECMAOlivettiPortugais (international)

Dans les tables ci-dessus, la colonne code indique la correspondance avec ceux utilisés comme libellés abrégés de colonnes pour repérer les caractères variants de la section suivante ; ces codes ne sont pas normalisés (seuls les numéros d’enregistrement ISO-IR le sont).

Codes de caractères variants

modifier

Les caractères affichés sur fond bleu ou jaune dans le tableau ci-dessous sont ceux recommandés, mais la variante ASCII (affichée sur fond blanc dans la même ligne, notamment dans la colonne US) est souvent utilisée à la place (quand ils sont utilisés isolément). C’est le cas particulièrement pour les caractères dits invariants de l’ISO 646, c’est-à-dire les 26 lettres latines basiques (majuscules ou minuscules), les 10 chiffres arabo-européens et les 20 symboles ou ponctuations suivants:

! " % & ' ( ) * + , - . / : ; < = > ? _

qui ne sont pas modifiés dans les jeux de caractères totalement compatibles avec l’ISO 646 (mais peuvent avoir des variantes graphiques plus proches d’autres caractères considérés comme distincts dans ISO/IEC 10646 et Unicode.)

Aussi, parmi les 94 positions graphiques de l’ISO 646 (codées de 33 à 126 en décimal), seules 12 positions sont dites variantes et correspondent aux caractères graphiques suivants de la variante américaine de l’ISO 646 (alias ASCII) :

# $ @ [ \ ] ^ ` { | } ~

Les changements spécifiques à certaines de ces variantes sont indiqués dans la table suivante avec un fond coloré jaune ou bleu quand le caractère assigné au code est différent de celui assigné dans l’ASCII (US) ; les cellules vides sur fond gris indiquent des positions invalides non utilisées dans le jeu de caractères normalisé correspondant :

CodesCaractères pour chaque jeu compatible ISO 646
binairedéc.hexaINVT.61JA-OJAKRCNUSIRVGBFRFR-0CA-1CA-2itaporPTDKNONO-2SESE-CDEHUIEespESCUMTYU
010 00103422"""""""""""""""""""""""""""""
010 00113523 #######£££##£#£##§####£#####
010 01003624 ¤$$$¥$$$$$$$$$$$$$¤¤$¤$$$¤$$
010 10013927'''''''
010 1100442C,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
010 1101452D-----------------------------
010 1111472F/////////////////////////////
100 00006440 @@@@@@@@ààà১´@@@@ɧÁÓ§@@Ž
101 1011915B [[[[[[[[°°ââ°ÃÃÆÆÆÄÄÄÉÉ¡¡¡ġŠ
101 1100925C  ¥¥\\\\çççççÇÇØØØÖÖÖÖÍÑÑÑżĐ
101 1101935D ]]]]]]]]§§êêéÕÕÅÅÅÅÅÜÜÚ¿Ç]ħĆ
101 1110945E  ^^^^^ˆˆ^ˆîɈˆˆˆˆˆˆÜˆˆÁˆ¿¿ˆČ
101 1111955F_____________________________
110 00009660   ``````µµôôù``````é`áó```ċž
111 10111237B  {{{{{{{ééééàããæææäääéé°´´Ġš
111 11001247C ||||||||ùùùùòççøøøööööíñññŻđ
111 11011257D  }}}}}}}èèèèèõõåååååüüúçç[Ħć
111 11101267E   ¯¯~~˜˜¨¨ûûì°˜˜¯|˜üß˝á˜¨¨Ċč

Les caractères affichés ci-dessus sur fond jaune doivent être interprétés comme des diacritiques combinants lorsqu’ils sont précédés ou suivis d’un caractère de contrôle retour arrière (BS, code 8). Ces diacritiques s’appliquent alors au caractère précédent si ces caractères réinterprétés sont précédés du caractère de contrôle retour arrière, sinon ils s’appliquent au caractère suivant comme s’ils étaient saisis comme touches mortes (et dans ce cas le transcodage vers Unicode nécessitera une inversion du caractère suivant et du diacritique) ; on peut aussi coder la combinaison du caractère de base et du diacritique avec un caractère Unicode précombiné (en forme normale C) correspondant à cette combinaison, si elle est codée dans Unicode. Dans ce cas, les ponctuations, symboles et lettres modificatives suivants sont réinterprétés ainsi :

ISO 646Interprétation isoléeInterprétation avec BS et un autre caractère (ici « o »)
hexaCaractèreUnicodeNomCaractèreUnicodeNom
0x22"U+0022guillemet anglaisU+0308diacritique tréma (ou diérèse ou umlaut)
0x27´U+00B4accent aiguU+0301diacritique accent aigu (ou oxeia en grec)
0x2C,U+002CvirguleU+0326diacritique virgule souscrite (en roumain)
U+0327diacritique cédille (sauf en roumain)
0x2D-U+002Dtiret-moinsU+0335diacritique barre courte couvrante
0x2F/U+002Fbarre obliqueU+0337diacritique barre oblique courte couvrante (avec une minuscule)
U+0338diacritique barre oblique longue couvrante (avec une majuscule)
0x5B°U+00B0symbole degréU+030Adiacritique rond en chef
0x5E^U+02C6lettre modificative accent circonflexe (avec chasse)U+0302diacritique accent circonflexe
0x5F_U+005Ftiret basU+0331diacritique macron souscrit
0x60`U+0060accent grave (avec chasse)U+0300diacritique accent grave
0x7B°U+00B0symbole degréU+030Adiacritique rond en chef
´U+00B4accent aiguU+0301diacritique accent aigu (ou oxeia en grec)
0x7E¨U+00A8tréma (avec chasse)U+0308diacritique tréma (ou diérèse ou umlaut)
°U+00B0symbole degréU+030Adiacritique rond en chef
ˉU+02C9lettre modificative macron (avec chasse)U+0304diacritique macron
˜U+02DCpetit tilde (avec chasse)U+0303diacritique tilde
˝U+02DDdouble accent aigu (avec chasse)U+030Bdiacritique double accent aigu

Notes et références

modifier

Articles connexes

modifier

Liens externes

modifier