ISO/CEI 6937
ISO/CEI 6937, intitulée Technologies de l’information — Jeu de caractères graphiques codés pour la transmission de texte — Alphabet latin, est une norme internationale de l’ISO publiée pour la première fois en 1983 et définissant un codage de caractères étendant le codage ISO/CEI 646 (dont la variante la plus connue est ASCII). Elle a été conçue en collaboration avec l’UIT-T (le Secteur de la normalisation des télécommunications de l’Union internationale des télécommunications — Comité Consultatif International Téléphonique et Télégraphique à l’époque). Sa dernière actualisation date de 2009.
Ses principaux architectes furent Hugh McGregor Ross, Peter Fenwick, Bernard Marti et Luek Zeckendorf.
Ce jeu de caractères[pas clair] se distingue des précédents en ce que les lettres diacritées sont encodées sur deux octets, le premier indiquant le diacritique et le second la lettre. L’encodage est ainsi à longueur variable, complication qui jointe à différents défauts peut expliquer la réticence de certains industriels à implémenter cette norme. Cet échec a porté préjudice à la langue française dans le sens où ISO/CEI 6937 est le premier jeu de caractères à supporter l’e dans l’o, et que ce défaut d’implémentation engendra indirectement l’exclusion de l’œ/Œ du jeu de caractères suivant, le Latin-1[1].
Répertoire
[modifier | modifier le code]À un certain stade de la vie d’ISO/CEI 6937, le jeu de caractères comprenait 327 caractères graphiques, dont 159 caractères latins de base et symboles, 13 diacritiques, et 155 diacrités.[réf. nécessaire] Les caractères de contrôle C0 et C1 n’étant pas couverts par la norme, les 2×2 rangées sont réservées. C’est cet état plus le symbole € – ajouté pour la troisième édition en 2001 – qui est rendu dans les tableaux ci-dessous. En 1998 le rédacteur d’ISO/CEI 6937 fit état de 333 caractères (espace comprise)[2].
Caractères codés sur un octet
[modifier | modifier le code]Les 128 premiers caractères reprennent le jeu US-ASCII ou ISO/CEI 646. Dans ISO/CEI 6937 cet ensemble s’appelle jeu primaire. Une exception : le symbole $ a été remplacé dans un premier temps par le symbole monétaire générique ‘¤’, mais cette anomalie a été corrigée par la suite.
Voici la liste d’origine du jeu primaire (noter le ¤ à la place du $) :
!"#¤%&'()*+,-./0123456789:;<=>?@ ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_` abcdefghijklmnopqrstuvwxyz{|}
Le jeu secondaire comporte divers symboles, entrecoupés de la rangée des diacritiques (C1..CF). On y trouve des originalités comme la croche (♪) en plus de 4 flèches simples et 7 fractions ordinaires[3]. Le jeu se termine par une série de lettres utilisées dans les langues d’Europe à écriture latine, qui sont entre autres des ligatures orthographiques (æ, ij, œ, ß), des lettres particulières (edh ð, eng ŋ, thorn þ, kra ĸ), ou encore des lettres avec un diacritique traversant (đ, ħ, ł, ø, ŧ). 10 positions étaient mises en attente, dont A4hex qui recut plus tard le symbole de l’euro.
Dans le tableau ci-après, les unicodes sont donnés à titre purement indicatif. En particulier les unicodes des diacritiques combinants accompagnant les diacritiques d’ISO/CEI 6937 ne signifient pas que ces derniers seraient combinants, car en réalité ils sont seulement des moitiés de code des caractères précomposés tels qu’ils figurent dans le tableau suivant.
Noter que la majuscule du D barré est manquante, l’utilisateur étant censé saisir un edh majuscule (Ð) qui a même aspect, tandis que les minuscules sont différentes : ð pour 0xF2, đ pour 0xF3. Unicode n’unifie pas ces deux majuscules.
Cette norme ne définit pas les caractères de contrôle 00hex à 1Fhex et 80hex à 9Fhex.
Légende :
|
|
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0_ |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
1_ |
16 |
17 |
18 |
19 |
21 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
2_ |
SP 0020 32 |
! 0021 33 |
" 0022 34 |
# 0023 35 |
$ 0024 36 |
% 0025 37 |
& 0026 38 |
' 0027 39 |
( 0028 40 |
) 0029 41 |
* 002A 42 |
+ 002B 43 |
, 002C 44 |
- 002D 45 |
. 002E 46 |
/ 002F 47 |
3_ |
0 0030 48 |
1 0031 49 |
2 0032 50 |
3 0033 51 |
4 0034 52 |
5 0035 53 |
6 0036 54 |
7 0037 55 |
8 0038 56 |
9 0039 57 |
: 003A 58 |
; 003B 59 |
< 003C 60 |
= 003D 61 |
> 003E 62 |
? 003F 63 |
4_ |
@ 0040 64 |
A 0041 65 |
B 0042 66 |
C 0043 67 |
D 0044 68 |
E 0045 69 |
F 0046 70 |
G 0047 71 |
H 0048 72 |
I 0049 73 |
J 004A 74 |
K 004B 75 |
L 004C 76 |
M 004D 77 |
N 004E 78 |
O 004F 79 |
5_ |
P 0050 80 |
Q 0051 81 |
R 0052 82 |
S 0053 83 |
T 0054 84 |
U 0055 85 |
V 0056 86 |
W 0057 87 |
X 0058 88 |
Y 0059 89 |
Z 005A 90 |
[ 005B 91 |
\ 005C 92 |
] 005D 93 |
^ 005E 94 |
_ 005F 95 |
6_ |
` 0060 96 |
a 0061 97 |
b 0062 98 |
c 0063 99 |
d 0064 100 |
e 0065 101 |
f 0066 102 |
g 0067 103 |
h 0068 104 |
i 0069 105 |
j 006A 106 |
k 006B 107 |
l 006C 108 |
m 006D 109 |
n 006E 110 |
o 006F 111 |
7_ |
p 0070 112 |
q 0071 113 |
r 0072 114 |
s 0073 115 |
t 0074 116 |
u 0075 117 |
v 0076 118 |
w 0077 119 |
x 0078 120 |
y 0079 121 |
z 007A 122 |
{ 007B 123 |
| 007C 124 |
} 007D 125 |
~ 007E 126 |
DEL 007F 127 |
8_ |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
9_ |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
A_ |
NBSP 00A0 160 |
¡ 00A1 161 |
¢ 00A2 162 |
£ 00A3 163 |
€ 20AC 164 |
¥ 00A5 165 |
166 |
§ 00A7 167 |
¤ 00A4 168 |
‘ 2018 169 |
“ 201C 170 |
« 00AB 171 |
← 2190 172 |
↑ 2191 173 |
→ 2192 174 |
↓ 2193 175 |
B_ |
° 00B0 176 |
± 00B1 177 |
² 00B2 178 |
³ 00B3 179 |
× 00D7 180 |
µ 00B5 181 |
¶ 00B6 182 |
· 00B7 183 |
÷ 00F7 184 |
’ 2019 185 |
” 201D 186 |
» 00BB 187 |
¼ 00BC 188 |
½ 00BD 189 |
¾ 00BE 190 |
¿ 00BF 191 |
C_ |
192 |
̀ 0300 193 |
́ 0301 194 |
̂ 0302 195 |
̃ 0303 196 |
̄ 0304 197 |
̆ 0306 198 |
̇ 0307 199 |
̈ 0308 200 |
201 |
̊ 030A 202 |
̧ 0327 203 |
204 |
̋ 030B 205 |
̨ 0328 206 |
̌ 030C 207 |
D_ |
― 2015 208 |
¹ 00B9 209 |
® 00AE 210 |
© 00A9 211 |
™ 2122 212 |
♪ 266A 213 |
¬ 00AC 214 |
¦ 00A6 215 |
216 |
217 |
218 |
219 |
⅛ 215B 220 |
⅜ 215C 221 |
⅝ 215D 222 |
⅞ 215E 223 |
E_ |
2126 224 |
Æ 00C6 225 |
Đ 0110 226 |
ª 00AA 227 |
Ħ 0126 228 |
229 |
IJ 0132 230 |
Ŀ 013F 231 |
Ł 0141 232 |
Ø 00D8 233 |
Œ 0152 234 |
º 00BA 235 |
Þ 00DE 236 |
Ŧ 0166 237 |
Ŋ 014A 238 |
ʼn 0149 239 |
F_ |
ĸ 0138 240 |
æ 00E6 241 |
đ 0111 242 |
ð 00F0 243 |
ħ 0127 244 |
ı 0131 245 |
ij 0133 246 |
ŀ 0140 247 |
ł 0142 248 |
ø 00F8 249 |
œ 0153 250 |
ß 00DF 251 |
þ 00FE 252 |
ŧ 0167 253 |
ŋ 014B 254 |
SHY 00AD 255 |
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F |
Caractères codés sur deux octets
[modifier | modifier le code]Les 155 lettres diacritées qui font partie du jeu mais ne figurent pas dans le tableau ci-dessus sont encodées non pas sur un mais sur deux octets, dont le premier a la signification d’un diacritique pris dans une liste de 13 diacritiques supportés, et le second, une lettre prise dans le jeu primaire.
Que le g minuscule avec cédille (ģ) soit parmi les lettres avec accent aigu est une anomalie due à l’idée que par le fait de sa descendante cette lettre s’écrirait avec un accent aigu au lieu d’une virgule tournée (Ģ ģ) et s’appellerait en conséquence. Dans la troisième édition de la norme en 2001 le nom du g cédille minuscule a été mis en conformité avec Unicode, tandis que son encodage restait avec le code de l’accent aigu (C2hex) pour la rétrocompatibilité.
Diacritique | Code hexadécimal figurant en premier | Caractères possibles comme 2e octet | Caractères précomposés résultants |
---|---|---|---|
Accent grave | 0xC1 | AEIOUaeiou | ÀÈÌÒÙàèìòù |
Accent aigu | 0xC2 | ACEILNORSUYZacegilnorsuyz | ÁĆÉÍĹŃÓŔŚÚÝŹáćéģíĺńóŕśúýź |
Accent circonflexe | 0xC3 | ACEGHIJOSUWYaceghijosuwy | ÂĈÊĜĤÎĴÔŜÛŴŶâĉêĝĥîĵôŝûŵŷ |
Tilde | 0xC4 | AINOUainou | ÃĨÑÕŨãĩñõũ |
Macron | 0xC5 | AEIOUaeiou | ĀĒĪŌŪāēīōū |
Brève | 0xC6 | AGUagu | ĂĞŬăğŭ |
Point en chef | 0xC7 | CEGIZcegz | ĊĖĠİŻċėġż |
Tréma | 0xC8 | AEIOUYaeiouy | ÄËÏÖÜŸäëïöüÿ |
Rond en chef | 0xCA | AUau | ÅŮåů |
Cédille | 0xCB | CGKLNRSTc(voir aigu)klnrst | ÇĢĶĻŅŖŞŢç(voir aigu)ķļņŗşţ |
Double accent aigu | 0xCD | OUou | ŐŰőű |
Ogonek | 0xCE | AEIUaeiu | ĄĘĮŲąęįų |
Háček (“Caron”) | 0xCF | CDELNRSTZcdelnrstz | ČĎĚĽŇŘŠŤŽčďěľňřšťž |
Avantages et limites
[modifier | modifier le code]Si cette norme a été supplantée par ISO/CEI 8859 puis par Unicode (ISO/CEI 10646), elle n’en conserve pas moins une importance historique en ce qu’elle permet d’expliquer un certain nombre de problèmes qui impactent encore de nos jours l’expression écrite de la Francophonie.
Points forts
[modifier | modifier le code]- Encodage sous forme de jeu de caractères unique d’un nombre bien supérieur aux 28=256 caractères, premier encodage à longueur variable.
- Prise en charge de l’e dans l’o et de l’ij en plus de l’Æ (toujours bien supporté car étant une lettre danoise) ainsi que de divers symboles. Ce support accordé au français et au néerlandais était dû à n’en pas douter à l’engagement des membres français et néerlandais de l’équipe d’architectes, Bernard Marti et Luek (Loek) Zeckendorf.
Points neutres
[modifier | modifier le code]- Velléité de recaler au rang de simple symbole monétaire le $ pourtant utilisé dans les langages de programmation. Sans accès à la première version du standard on peut simplement supposer que le $ et le ¤ étaient permutés, le premier finissant dans le jeu supplémentaire. Mais dans la version représentée dans le tableau ci-dessus le $ a déjà repris sa place traditionnelle. Le principal architecte ayant été britannique, on peut suspecter des raisons politiques derrière cette valse du symbole dollar, à l’instar de celles qui animèrent plus tard le premier rédacteur en chef d’ISO/CEI 10646, pareillement britannique, à insister lors des négociations de fusion pour qu’Unicode adopte les formes britanniques des noms de caractères[4].
- Absence de prise en charge de la virgule souscrite du Roumain, différenciée d’avec la cédille. Mais la désunification des deux diacritiques aurait eu de lourdes conséquences politiques[5].
Faiblesses
[modifier | modifier le code]- Pas de support pour le grec et le cyrillique, de sorte que l’Europe n’est pas couverte.
- Pas de support pour les langues africaines, notamment le bambara parlé au sein de la Francophonie (notamment au Mali et utilisant depuis l’année précédente (1982) trois lettres non couvertes (Ɛ, Ɲ, Ɔ).
- Pas d’octet diacritique rayé/barré alors que 2 ou 3 places dans la rangée des diacritiques sont vides. Ce diacritique aurait permis d’économiser jusqu’à 10 places. Effet secondaire : les lettres rayées étaient disposées toutes sur des touches jusqu’en 2010, année où Karl Pentzlin rationalisa ces diacrités par l’ajout d’une touche morte rayé et d’une touche morte barré sur les claviers DIN 2137:2012 T2 et T3.
- Le double diacritage est impossible, ce qui exclut le support du vietnamien] et des autres langues – y compris européennes – écrites avec des doubles diacrités : letton, lituanien, …
- Oubli des guillemets allemands : Les guillemets-virgules simples et doubles sont présents mais la variante basse (surtout double : „) manque, qui s’utilise en allemand, langue pourtant couverte par ce jeu de caractères.
- Absence des guillemets-chevrons simples (‹ ›), utilisés couramment pour les citations nichées en allemand (› ‹), et recommandée aussi dans les autres langues utilisant les guillemets-chevrons (doubles : « »).
- Impasse sur les chiffres en exposant autres qu’1, 2 et 3, ainsi que sur les chiffres en indice alors que l’architecture permettait d’encoder tous ces caractères avec les octets circonflexe et háček (“caron”). Partant, les utilisateurs sont privés de la possibilité de saisir des fractions “vulgaires” personnalisées, et l’expression est cantonnée aux quarts et huitièmes disponibles aussi sur certaines machines à écrire néerlandaises, c’est-à-dire au pays dont était originaire l’un des architectes.
- Omission des flèches obliques, pourtant gravées sur les pavés numériques, et des flèches doubles alors même qu’elles étaient facilement encodables à l’aide des octets pour l’accent aigu et le double accent aigu existants suivis des chiffres correspondants.
- Unification des majuscules de l’ed (ð, Ð) et du d barré (đ, Đ) conduisant à des dysfonctionnements en traitement de texte (conversion de la casse), alors qu’il restait une dizaine de places libres.
- Changement de diacritique au changement de casse pour le G cédille (Ģ, ģ) qui complique l’implémentation de l’entrée de texte et de la conversion de la casse.
Alors même que l’architecture d’ISO/CEI 6937 autorise l’encodage sur deux octets d’un ensemble de caractères arbitraires, la norme est construite comme si l’octet diacritique était une sorte de diacritique combinant, ou plutôt fonctionnait un peu comme dans ISO/CEI 646. Cette caractéristique donne à ISO/CEI 6937 l’aspect d’une étape intermédiaire, tiraillée entre deux époques, une sorte de balbutiement pré-Unicode. Ainsi ISO/CEI 6937 a un côté inachevé voire inconséquent et reste malheureusement en deçà de son potentiel. Vu d’aujourd’hui, tout se passait comme si ce n’était pas encore l’heure de l’encodage à longueur variable, difficile à implémenter et en l’occurrence si peu gratifiant en fin de compte qu’ISO/CEI 6937 peinait à convaincre les industriels. Trois ans après sa première publication l’un des plus grands n’avait toujours pas implémenté son jeu de caractères dans ses imprimantes[6].
Utilisation et influence
[modifier | modifier le code]ISO/CEI 6937 a été utilisée en Télétexte[7]. À cet effet elle a même été complétée du symbole de l’euro.
L’IANA a enregistré les noms du jeu de caractères ISO_6937-2-25 et ISO_6937-2-add pour deux versions plus anciennes de cette norme (plus les codes de contrôle). Mais en pratique cet encodage n’est pas utilisé sur internet.
La séquence d'échappement ISO/CEI 2022 pour spécifier le côté droit du jeu de caractères ISO/CEI 6937 est ESC - R
(hex 1B 2D 52
)[8].
ISO/CEI 6937 a profondément influencé le Jeu partiel européen multilingue 1 (Multilingual European Subset 1, MES-1) de 1998, dans lequel elle est entièrement incluse tout en étant complétée de 29 lettres majuscules/minuscules[9], dont notamment le D barré majuscule, et du symbole de l’euro. Par ce biais elle se retrouve sur les dispositions de clavier conformes à ISO/CEI 9995-3:2002, notamment le clavier Canadien multilingue standard, et par rétrocompatibilité aussi sur les claviers allemands T2 et T3 de 2012, conformes à ISO/CEI 9995-3:2010.
Étant donné que la France est politiquement obligée d’implémenter cette dernière norme sur le nouveau clavier français de France[pourquoi ?], les choix des architectes d’ISO/CEI 6937 laisseront des traces sur nos claviers à tout jamais.
Notes et références
[modifier | modifier le code]- Jacques André, « ISO-Latin-1, norme de codage des caractères européens ? trois caractères français en sont absents ! - CG_1996___25_65_0.pdf », (consulté le )
- Keld Jørn Simonsen, « Unicode Mail List Archive: Re: ISO 6937 », (consulté le )
- Ce qui s’appelle vulgar fraction en anglais ou « fraction vulgaire » à l’époque moderne est une fraction ordinaire en français contemporain. Voir dans la traduction française des tableaux de codes Unicode. — Edward Cherlin, « Unicode Mail List Archive: Re: Fractions », (consulté le )
- Andrew West, « BabelStone: Unicode Character Names Part 2 : A Name is for Life », (consulté le )
- Johan W. van Wingen, « Netherlands Position Paper », (consulté le )
- Lire les conséquences de cette situation dans l’article cité de Jacques André.
- ETS 300 706 - Enhanced Teletext specification p. 116
- Supplementary Set of ISO/IEC 6937:1992 The high-ASCII half of the character set. (Le côté gauche est U.S. ASCII.)
- Information Technology - Multilingual European Subsets of ISO/IEC 10646-1 p. 10
Voir aussi
[modifier | modifier le code]Liens externes
[modifier | modifier le code]ISO/IEC 6937:2001 Information technology — Coded graphic character set for text communication — Latin alphabet, ISO/IEC, (lire en ligne) (La troisième édition (2001) de cette norme est accessible et téléchargeable en entier gratuitement via la fonctionnalité d’aperçu sur le site officiel de l’ISO à l’adresse indiquée. Sa dernière édition date de 2009.)