ISO/CEI 646




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].




Sommaire






  • 1 Généralités


  • 2 Caractères invariants


  • 3 Variantes nationales de l’ISO 646


  • 4 Codes de caractères variants


  • 5 Notes et références


  • 6 Articles connexes


    • 6.1 Liens externes







Généralités |


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 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 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 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 |


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


























































































































Codes
Car.
Nom

binaire

déc.

hexa.
010 0000
32
20
espace
010 0001
33
21
!
point d’exclamation
010 0010
34
22
"
guillemet anglais
 
010 0101
37
25
%
signe pourcent
010 0110
38
26
&
esperluette
010 0111
39
27
'
apostrophe
010 1000
40
28
(
parenthèse ouvrante
010 1001
41
29
) parenthèse fermante
010 1010
42
2A
*
astérisque
010 1011
43
2B
+
signe plus
010 1100
44
2C
,
virgule
010 1101
45
2D
-
trait d’union-signe moins
010 1110
46
2E
.
point
010 1111
47
2F
/
barre oblique





























































































































Codes
Car.
Nom

binaire

déc.

hexa.
011 0000
48
30
0
chiffre zéro
011 0001
49
31
1 chiffre un
011 0010
50
32
2 chiffre deux
011 0011
51
33
3 chiffre trois
011 0100
52
34
4 chiffre quatre
011 0101
53
35
5 chiffre cinq
011 0110
54
36
6 chiffre six
011 0111
55
37
7 chiffre sept
011 1000
56
38
8 chiffre huit
011 1001
57
39
9 chiffre neuf
011 1010
58
3A
:
deux-points
011 1011
59
3B
;
point-virgule
011 1100
60
3C
< signe inférieur à
011 1101
61
3D
= signe égal à
011 1110
62
3E
> signe supérieur à
011 1111
63
3F
?
point d’interrogation











































































































































































































Codes
Car.
Nom

binaire

déc.

hexa.
100 0001
65
41
A
A (lettre) latine capitale A
100 0010
66
42
B lettre latine capitale B
100 0011
67
43
C lettre latine capitale C
100 0100
68
44
D lettre latine capitale D
100 0101
69
45
E lettre latine capitale E
100 0110
70
46
F lettre latine capitale F
100 0111
71
47
G lettre latine capitale G
100 1000
72
48
H lettre latine capitale H
100 1001
73
49
I lettre latine capitale I
100 1010
74
4A
J lettre latine capitale J
100 1011
75
4B
K lettre latine capitale K
100 1100
76
4C
L lettre latine capitale L
100 1101
77
4D
M lettre latine capitale M
100 1110
78
4E
N lettre latine capitale N
100 1111
79
4F
O lettre latine capitale O
101 0000
80
50
P lettre latine capitale P
101 0001
81
51
Q lettre latine capitale Q
101 0010
82
52
R lettre latine capitale R
101 0011
83
53
S lettre latine capitale S
101 0100
84
54
T lettre latine capitale T
101 0101
85
55
U lettre latine capitale U
101 0110
86
56
V lettre latine capitale V
101 0111
87
57
W lettre latine capitale W
101 1000
88
58
X lettre latine capitale X
101 1001
89
59
Y lettre latine capitale Y
101 1010
90
5A
Z lettre latine capitale Z
 
101 1111
95
5F
_
tiret bas



































































































































































































Codes
Car.
Nom

binaire

déc.

hexa.
110 0001
97
61
a lettre latine minuscule a
110 0010
98
62
b lettre latine minuscule b
110 0011
99
63
c lettre latine minuscule c
110 0100
100
64
d lettre latine minuscule d
110 0101
101
65
e lettre latine minuscule e
110 0110
102
66
f lettre latine minuscule f
110 0111
103
67
g lettre latine minuscule g
110 1000
104
68
h lettre latine minuscule h
110 1001
105
69
i lettre latine minuscule i
110 1010
106
6A
j lettre latine minuscule j
110 1011
107
6B
k lettre latine minuscule k
110 1100
108
6C
l lettre latine minuscule l
110 1101
109
6D
m lettre latine minuscule m
110 1110
110
6E
n lettre latine minuscule n
110 1111
111
6F
o lettre latine minuscule o
111 0000
112
70
p lettre latine minuscule p
111 0001
113
71
q lettre latine minuscule q
111 0010
114
72
r lettre latine minuscule r
111 0011
115
73
s lettre latine minuscule s
111 0100
116
74
t lettre latine minuscule t
111 0101
117
75
u lettre latine minuscule u
111 0110
118
76
v lettre latine minuscule v
111 0111
119
77
w lettre latine minuscule w
111 1000
120
78
x lettre latine minuscule x
111 1001
121
79
y lettre latine minuscule y
111 1010
122
7A
z lettre latine minuscule z



Variantes nationales de l’ISO 646 |


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 juin 2004, 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 :






















































































Code
ISO-
IR
Norme
Utilisation
CA-1
121

CSA Z243.4-1985

Canada (alternative no.1, avec “î”)
(français classique)
CA-2
122

CSA Z243.4-1985

Canada (alternative no.2, avec “É”)
(français orthographe réformée)
CN
057
GB/T 1988-80

Chine (latin basique)
CU
151
NC 99-10:81

Cuba (espagnol)
DE
021

DIN 66083

Allemagne (allemand)
DK

DS 2089

Danemark (danois)
FR
069

AFNOR NF Z 62010-1982

France (français)
FR-0
025

AFNOR NF Z 62010-1973

France (obsolète depuis avril 1985)
GB
004

BSI 4730
Royaume-Uni (anglais)
GR
088
HOS ELOT

Grèce (obsolète)
HU
086
MSZ 7795/3

Hongrie
IE
207
NSAI 433:1996

Irlande (gaélique irlandais)

 






















































































Code
ISO-
IR
Norme
Utilisation
INV
170

ISO 646:1983
International (jeu graphique invariant)
IRV
002

ISO 646:1983
International (jeu graphique de référence)
JA
014

JIS C 6220-1969

Japon (romaji)
JA-O
092

JIS C 6229-1984

Japon (OCR-B)
KR


KS C 5636-1989

Corée du Sud (coréen romanisé)
MT

 

Malte (maltais)
NO
060
NS 4551 version 1

Norvège
NO-2
061
NS 4551 version 2

Norvège (obsolète depuis juin 1987)
SE
010

SEN 85 02 00 annexe B

Suède (suédois de base)
SE-C
011

SEN 85 02 00 annexe C

Suède (suédois étendu pour les noms)
T.61
102

ITU/CCITT Recommandation T.61
International (Teletex)
US
006

ANSI X3.4-1968

États-Unis (ASCII)
YU
141
JUS I.B1.002

ex-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 :











































Code
ISO-
IR
Normalisation
Origine
Utilisation
ES
085

ECMA

IBM

Espagne (basque, castillan, catalan, galicien)
esp
017

ECMA

Olivetti

Espagnol (international)
DK-SE
009-1

SSK
NATS, jeu principal

Suède et Danemark (texte journalistique)
FI-SE
008-1

SSK
NATS, jeu principal

Suède et Finlande (texte journalistique)

 





































Code
ISO-
IR
Normalisation
Origine
Utilisation
INIS
049

AIEA

INIS
Sous-ensemble de l’IRV pour l’échange de données bibliographiques
ita
015

ECMA

Olivetti

Italien
PT
084

ECMA

IBM

Portugal (portugais, espagnol)
por
016

ECMA

Olivetti

Portugais (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 |


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 :













































































































































































































































































































































































































































































































































































































































































Codes
Caractères pour chaque jeu compatible ISO 646
binaire déc.
hexa
INV
T.61
JA-O
JA
KR
CN
US
IRV
GB
FR
FR-0
CA-1
CA-2
ita
por
PT
DK
NO
NO-2
SE
SE-C
DE
HU
IE
esp
ES
CU
MT
YU
010 0010
34
22
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
010 0011
35
23
 
#
#
#
#
#
#
#
£
£
£
#
#
£
#
£
#
#
§
#
#
#
#
£
#
#
#
#
#
010 0100
36
24
 
¤
$
$
$
¥
$
$
$
$
$
$
$
$
$
$
$
$
$
¤
¤
$
¤
$
$
$
¤
$
$
010 1001
39
27
'
'
'
'
'
'
'






















010 1100
44
2C
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
010 1101
45
2D
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
010 1111
47
2F
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
100 0000
64
40
 
@
@
@
@
@
@
@
@
à
à
à
à
§
§
´
@
@
@
@
É
§
Á
Ó
§

@
@
Ž
101 1011
91
5B
 
[
[
[
[
[
[
[
[
°
°
â
â
°
Ã
Ã
Æ
Æ
Æ
Ä
Ä
Ä
É
É
¡
¡
¡
g
Š
101 1100
92
5C
 
 
¥
¥





ç
ç
ç
ç
ç
Ç
Ç
Ø
Ø
Ø
Ö
Ö
Ö
Ö
Í
Ñ
Ñ
Ñ
z
Ð
101 1101
93
5D
 
]
]
]
]
]
]
]
]
§
§
ê
ê
é
Õ
Õ
Å
Å
Å
Å
Å
Ü
Ü
Ú
¿
Ç
]
h
C
101 1110
94
5E
 
 
^
^
^
^
^
ˆ
ˆ
^
ˆ
î
É
ˆ
ˆ
ˆ
ˆ
ˆ
ˆ
ˆ
Ü
ˆ
ˆ
Á
ˆ
¿
¿
ˆ
C
101 1111
95
5F
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
110 0000
96
60
 
 
 
`
`
`
`
`
`
µ
µ
ô
ô
ù
`
`
`
`
`
`
é
`
á
ó
`
`
`
c
ž
111 1011
123
7B
 
 
{
{
{
{
{
{
{
é
é
é
é
à
ã
ã
æ
æ
æ
ä
ä
ä
é
é
°
´
´
G
š
111 1100
124
7C
 
|
|
|
|
|
|
|
|
ù
ù
ù
ù
ò
ç
ç
ø
ø
ø
ö
ö
ö
ö
í
ñ
ñ
ñ
Z
d
111 1101
125
7D
 
 
}
}
}
}
}
}
}
è
è
è
è
è
õ
õ
å
å
å
å
å
ü
ü
ú
ç
ç
[
H
c
111 1110
126
7E
 
 
 
¯
¯
~
~
˜
˜
¨
¨
û
û
ì
°
˜
˜
¯
|
˜
ü
ß
˝
á
˜
¨
¨
C
c

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 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 646
Interprétation isolée
Interprétation avec BS et un autre caractère (ici « o »)
hexa
Caractère Unicode Nom
Caractère Unicode Nom
0x22

"
U+0022 guillemet anglais


U+0308 diacritique tréma (ou diérèse ou umlaut)
0x27

´
U+00B4 accent aigu


U+0301 diacritique accent aigu (ou oxeia en grec)
0x2C

,
U+002C virgule


U+0326 diacritique virgule souscrite (en roumain)


U+0327 diacritique cédille (sauf en en roumain)
0x2D

-
U+002D tiret-moins


U+0335 diacritique barre courte couvrante
0x2F

/
U+002F barre oblique


U+0337 diacritique barre oblique courte couvrante (avec une minuscule)


U+0338 diacritique barre oblique longue couvrante (avec une majuscule)
0x5B

°
U+00B0 symbole degré


U+030A diacritique rond en chef
0x5E

^
U+02C6 lettre modificative accent circonflexe (avec chasse)


U+0302 diacritique accent circonflexe
0x5F

_
U+005F tiret bas


U+0331 diacritique macron souscrit
0x60

`
U+0060 accent grave (avec chasse)


U+0300 diacritique accent grave
0x7B

°
U+00B0 symbole degré


U+030A diacritique rond en chef

´
U+00B4 accent aigu


U+0301 diacritique accent aigu (ou oxeia en grec)
0x7E

¨
U+00A8 tréma (avec chasse)


U+0308 diacritique tréma (ou diérèse ou umlaut)

°
U+00B0 symbole degré


U+030A diacritique rond en chef

ˉ
U+02C9 lettre modificative macron (avec chasse)


U+0304 diacritique macron

˜
U+02DC petit tilde (avec chasse)


U+0303 diacritique tilde

˝
U+02DD double accent aigu (avec chasse)


U+030B diacritique double accent aigu


Notes et références |






  1. http://www.ecma-international.org/publications/standards/Ecma-006.htm
    Standard ECMA-6
    7-bit Coded Character Set
    6th edition (December 1991)
    http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-006.pdf





Articles connexes |



  • ASCII


  • ISO 2022 Structure des codes de caractères et techniques d'extension Information technology—Character code structure and extension techniques

  • ISO/CEI 10646

  • Unicode



Liens externes |


  • Registre ISO-IR des jeux de caractères sur 7 ou 8 bits



  • Portail de l’informatique Portail de l’informatique
  • Portail de l’écriture Portail de l’écriture



Popular posts from this blog

What visual should I use to simply compare current year value vs last year in Power BI desktop

How to ignore python UserWarning in pytest?

Alexandru Averescu