ISO 646

Restez toujours informé : suivez-nous sur Google (☆)

Introduction

Unicode

Jeux de caractères


  • UCS (ISO/CEI 10646)
  • ISO 646, ASCII
  • ISO 8859-1
  • WGL4
  • UniHan

Équivalences normalisées


  • NFC (précomposée)
  • NFD (décomposée)
  • NFKC (compatibilité)
  • NFKD (compatibilité)

Propriétés et algorithmes


Codage


Autres transformations


  • Punycode
  • GB 18030

Applications d'échanges de données


  • Courriel et Unicode
  • Unicode et HTML

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

Généralités

Puisque que 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’époque, la reconnaissance universelle d’un octet de 8 bit n’existait pas ; aussi, les jeux de caractères nationaux créent à travers cette contrainte de 128 caractères (2 = 128) ne purent pas toujours inclure tous les caractères ASCII qui n’apparaissaient pas dans les variantes nationales.

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 80 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 plan 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 plan 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 :

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[[[[[[[[°°ââ°ÃÃÆÆÆÄÄÄÉÉ¡¡¡gŠ
101 1100925C¥¥\\\\çççççÇÇØØØÖÖÖÖÍÑÑÑzÐ
101 1101935D]]]]]]]]§§êêéÕÕÅÅÅÅÅÜÜÚ¿Ç]hC
101 1110945E^^^^^ˆˆ^ˆîɈˆˆˆˆˆˆÜˆˆÁˆ¿¿ˆC
101 1111955F_____________________________
110 00009660``````µµôôù``````é`áó```cž
111 10111237B{{{{{{{ééééàããæææäääéé°´´Gš
111 11001247C||||||||ùùùùòççøøøööööíñññZd
111 11011257D}}}}}}}èèèèèõõåååååüüúçç[Hc
111 11101267E¯¯~~˜˜¨¨ûûì°˜˜¯|˜üß˝á˜¨¨Cc

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