# Les ASCII de 0 à 127/Les extensions de l'ISO 646

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

## Répertoire

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

### Caractères codés sur un octet

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 $) :
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. 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 (æ, ĳ, œ, ß), des lettres particulières (ed ð, eng ŋ, thorn þ, kra ĸ), ou encore des lettres avec un diacritique traversant (đ, ħ, ł, ø, ŧ). 10 positions étaient mises en attente, dont A4Modèle:Hex 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 ed 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 00Modèle:Hex à 1FModèle:Hex et 80Modèle:Hex à 9FModèle:Hex.
Modèle:Chset-legend
Modèle:Chset-table-header
| Modèle:Chset-left | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 |
| Modèle:Chset-left | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 |
| Modèle:Chset-left | Modèle:Chset-ctrl3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 |
| Modèle:Chset-left | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 |
| Modèle:Chset-left | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 |
| Modèle:Chset-left | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 |
| Modèle:Chset-left | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 |
| Modèle:Chset-left | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-ctrl3 |
| Modèle:Chset-left | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 |
| Modèle:Chset-left | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 |
| Modèle:Chset-left | Modèle:Chset-ctrl3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-ctrl3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 |
| Modèle:Chset-left | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 |
| Modèle:Chset-left | Modèle:Chset-ctrl3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-ctrl3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-ctrl3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 |
| Modèle:Chset-left | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-ctrl3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 |
| Modèle:Chset-left | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-ctrl3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-ctrl3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 |
| Modèle:Chset-left | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-cell3 | Modèle:Chset-ctrl3 Modèle:Chset-table-footer |

### Caractères codés sur deux octets

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 (C2Modèle:Hex) pour la rétrocompatibilité.
Caractères précomposés d’ISO/CEI 6937 encodés sur deux octets :
| Diacritique | Code hexadécimal figurant en premier | Caractères possibles comme Modèle: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

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

* Encodage sous forme de jeu de caractères unique d’un nombre bien supérieur aux 2$^8$=256 caractères, premier encodage à longueur variable.
* Prise en charge de l’e dans l’o et de l’ĳ 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

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

### Faiblesses

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

## Utilisation et influence

ISO/CEI 6937 a été utilisée en Télétexte. À 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).
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, 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 Modèle:Pourquoi, les choix des architectes d’ISO/CEI 6937 laisseront des traces sur nos claviers à tout jamais.

## Notes et références

* ↑ 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 », 1996 (consulté le 22 septembre 2014)
* ↑ Keld Jørn Simonsen, « Unicode Mail List Archive: Re: ISO 6937 », 1998 (consulté le 18 mai 2016)
* ↑ 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 », 1999 (consulté le 21 mai 2016)
* ↑ Andrew West, « BabelStone: Unicode Character Names Part 2 : A Name is for Life », 2006 (consulté le 6 février 2015)
* ↑ Johan W. van Wingen, « Netherlands Position Paper », 1998 (consulté le 21 mai 2016)
* ↑ 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
### Liens externes

ISO/IEC 6937:2001 Information technology — Coded graphic character set for text communication — Latin alphabet, ISO/IEC, 2001 (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.)