Dans un article précédent, j’expliquais dans les grandes lignes le codage de caractères en informatique avec les jeux de caractères.
Aux débuts de la télécopie, le jeu de caractères ASCII est apparue mais a vite connu des limitations.
Des pages de codes ont vu le jour pour combler celles-ci (CP850, Windows CP1252, …). Cette multiplications a été ensuite limitée par l’organisation internationale de la standardisation (ISO) qui a aussi proposé une norme ISO 8859.
Si le sujet vous intéresse, ce guide vous retrace les grandes lignes des jeux de caractères et pages de codes.
![ASCII, CP1252, ISO/CEI et pages de codes](https://www.malekal.com/wp-content/uploads/2023/05/ascii-cp1252-iso-cei-pages-de-codes.jpg)
Qu’est-ce que l’ASCII
ASCII (American Standard Code for Information Interchange) est une norme de codage de caractères apparue en 1963.
C’est l’un des jeux de caractères les plus populaires utilisés par les ordinateurs généraux pour afficher du texte ou des chiffres sur l’écran de l’ordinateur.
Basé à l’origine sur l’alphabet anglais (moderne), l’ASCII code 128 caractères spécifiés en entiers de 7 bits, comme le montre le tableau ASCII ci-dessus.
95 des caractères codés sont imprimables : il s’agit des chiffres de 0 à 9, des lettres minuscules de a à z, des lettres majuscules de A à Z et des symboles de ponctuation. En outre, la spécification ASCII originale incluait 33 codes de contrôle non imprimables provenant des machines Teletype ; la plupart de ces codes sont désormais obsolètes, bien que certains soient encore couramment utilisés, tels que les codes de retour de chariot, de saut de ligne et de tabulation.
Toutefois, il ne prend pas en charge les caractères accentués, les cédilles, etc. utilisés par des langues comme le français.
L’ASCII a été conservé parce qu’il est omniprésent dans de nombreux logiciels mais ils posent de nombreux problèmes dont l’internationalisation, ce qui est incompatible avec un usage d’internet.
![La table ASCII](https://www.malekal.com/wp-content/uploads/2023/05/Table-ASCII.jpg)
ASCII étendue
L’ASCII utilise que les 128 premières variantes des 256 possibles d’un octet.
Cela a permis de créer des variantes de l’ASCII utilisant les 128 variantes restantes.
Ainsi, différents organismes de normalisation et sociétés ont développé de nombreuses variantes de l’ASCII pour faciliter l’expression des langues autres que l’anglais qui utilisaient des alphabets romains.
On pourrait classer certaines de ces variantes dans la catégorie des “extensions ASCII“, bien que certains utilisent ce terme à tort pour représenter toutes les variantes, y compris celles qui ne préservent pas la table des caractères de l’ASCII dans la gamme des 7 bits.
En outre, les extensions ASCII ont également été qualifiées à tort d’ASCII.
Par exemple, notons les encodages ISCII (Inde), VISCII (Vietnam). Bien que ces codages soient parfois appelés ASCII, le véritable ASCII n’est défini que par la norme ANSI.
Le code PETSCII utilisé par Commodore International pour ses systèmes 8 bits est probablement unique parmi les codes postérieurs à 1970, car il est basé sur l’ASCII-1963, au lieu de l’ASCII-1967 plus courant, tel qu’on le trouve sur l’ordinateur ZX Spectrum. Les ordinateurs 8 bits Atari et les ordinateurs Galaksija utilisaient également des variantes ASCII.
L’IBM PC a défini la page de code 437, qui remplaçait les caractères de contrôle par des symboles graphiques tels que des smileys, et mettait en correspondance des caractères graphiques supplémentaires avec les 128 positions supérieures.
Les systèmes d’exploitation tels que DOS ont pris en charge ces pages de code, et les fabricants de PC IBM les ont prises en charge au niveau matériel. Digital Equipment Corporation a développé le jeu de caractères multinational (DEC-MCS) pour le terminal VT220, l’une des premières extensions conçues davantage pour les langues internationales que pour les blocs graphiques.
En Europe de l’Ouest, c’est la page de code 850 qui était distribuée ; elle offrait un support plus complet des langues latines.
Enfin, Macintosh a défini Mac OS Roman et Postscript a défini un autre jeu de caractères : les deux jeux contenaient des lettres “internationales”, des symboles typographiques et des signes de ponctuation au lieu de graphiques, plus comme les jeux de caractères modernes.
![Le jeu de caractères ou page de code Mac OS Roman](https://www.malekal.com/wp-content/uploads/2023/05/Mac-OS-Roman.jpg)
Les pages de codes internationales
Voici différentes pages de codes par pays utilisés dans les systèmes DOS puis Windows (source Wikipedia).
Ces codes pages comportent un numéro et peuvent être notées CPXXX, par exemple CP437, CP852, etc.
Numéro de pages de codes | Description |
437 | page de code stockée en ROM de l’IBM PC, aussi appelée page de code des États-Unis |
720 | alphabet arabe |
737 | alphabet grec |
775 | alphabet latin (langues baltes) |
850 | alphabet latin (langues d’Europe occidentale) |
852 | alphabet des langues slaves |
855 | alphabet cyrillique |
857 | alphabet latin (turc) |
858 | alphabet latin « Multilingual » avec le symbole de l’euro |
860 | alphabet latin (portugais) |
861 | alphabet latin (islandais) |
862 | alphabet hébreu |
863 | alphabet latin (français canadien) |
865 |
alphabet latin (danois, norvégien, la seule différence avec la page de code 437 est la lettre Ø et ø à la place de ¥ et ¢ |
866 | alphabet cyrillique (basé sur GOST 19768-87) |
869 | alphabet grec |
874 | alphabet thaï |
Numéro de pages de codes | Description |
874 | alphabet thaï |
932 | écritures du japonais |
936 | chinois simplifié (République populaire de Chine, Singapour) |
949 | hangeul (coréen) |
950 | chinois traditionnel (Taïwan, Hong Kong) |
1200 | Unicode (BMP de l’ISO 10646, UTF-16LE) |
1201 | Unicode (BMP de l’ISO 10646, UTF-16BE) |
1250 | alphabet latin (langues d’Europe centrale) |
1251 | alphabet cyrillique |
1252 | alphabet latin (langues d’Europe occidentale, remplace la page de code 850) |
1253 | alphabet grec |
1254 | alphabet latin (turc) |
1255 | alphabet hébreu |
1256 | alphabet arabe |
1257 | alphabet latin (langues baltes) |
1258 | alphabet latin (vietnamien) |
65000 | Unicode (BMP de l’ISO 10646, UTF-7) |
65001 | Unicode (BMP de l’ISO 10646, UTF-8) |
Ces pages de codes n’étant pas compatibles entre elles, les numéros de chaînes de caractères pouvant se chevaucher, la transmission de caractères d’une langue à une autre n’est pas possible.
Enfin, les langues telles que le Chinois qui possèdent plus de 256 caractères ne peuvent utilisées ce système.
ISO/CEI 8859
Face à la multiplication de pages de codes, l’organisation internationale de la standardisation (ISO) a aussi proposé une norme.
Celle-ci se nomme l’ISO/CEI 8859 déclinée en séries.
La norme ISO/CEI 8859 est une série de normes communes à l’ISO et à la CEI pour le codage des caractères à 8 bits.
La série de normes se compose de parties numérotées, telles que ISO/IEC 8859-1, ISO/IEC 8859-2, etc.
Il y a 15 parties, à l’exception de la norme ISO/IEC 8859-12 qui a été abandonnée.
Code | Nom | Description |
ISO 8859-1 | Latin-1 Europe occidentale |
Peut-être la partie la plus utilisée de l’ISO/CEI 8859, couvrant la plupart des langues d’Europe occidentale. Une modification du DEC MCS ; la première version standard (1985) au niveau ECMA manquait le signe des temps et l’obélisque de division, qui ont été ajoutés l’année suivante. Le signe de l’euro et le Ÿ majuscule manquants figurent dans la version révisée ISO/IEC 8859-15 (voir ci-dessous). Le jeu de caractères IANA correspondant est ISO-8859-1. |
ISO 8859-2 | Latin-2 Europe Centrale |
Prend en charge les langues d’Europe centrale et orientale qui utilisent l’alphabet latin, notamment le bosniaque, le polonais, le croate, le tchèque, le slovaque, le slovène, le serbe et le hongrois. Le signe euro manquant se trouve dans la version ISO/IEC 8859-16. |
ISO 8859-3 | Latin-3 Europe du Sud |
|
ISO 8859-4 | Latin-4 Europe du Nord |
|
ISO 8859-5 | Latin/Cyrillique | Couvre principalement les langues slaves qui utilisent un alphabet cyrillique, notamment le biélorusse, le bulgare, le macédonien, le russe, le serbe et l’ukrainien (en partie). |
ISO 8859-6 | Latin/Arabique | Couvre les caractères les plus courants de la langue arabe. Ne prend pas en charge les autres langues utilisant l’écriture arabe. Doit être BiDi et l’assemblage cursif doit être traité pour l’affichage. |
ISO 8859-7 | Latin/Grecque | Couvre la langue grecque moderne (orthographe monotone). Peut également être utilisé pour le grec ancien écrit sans accents ou en orthographe monotone, mais ne dispose pas des diacritiques pour l’orthographe polytonique. Ceux-ci ont été introduits avec Unicode. Mis à jour en 2003 pour ajouter le signe de l’euro, le signe de la drachme et l’espacement ypogegrammeni. |
ISO 8859-8 | Latin/Hébreu | Couvre l’alphabet hébreu moderne tel qu’il est utilisé en Israël. Dans la pratique, il existe deux encodages différents : l’ordre logique (qui doit être traité par BiDi pour être affiché) et l’ordre visuel (de gauche à droite) (en vigueur, après traitement par BiDi et coupure des lignes). |
ISO 8859-9 | Latin-5 Turque |
En grande partie identique à l’ISO/IEC 8859-1, les lettres islandaises rarement utilisées étant remplacées par des lettres turques. |
ISO 8859-10 | Latin-6 Nordique |
Un réarrangement du latin 4. Considéré comme plus utile pour les langues nordiques. Les langues baltes utilisent davantage le latin 4. |
ISO 8859-11 | Latin/Thai | Contient les caractères nécessaires à la langue thaïlandaise. Première révision établie en 1986 au niveau de la norme nationale sous le nom de TIS 620. Élevée au rang de norme ISO dans le cadre de la norme ISO 8859 en 2001, avec l’ajout d’une espace insécable. |
Latin/Devanagari | Les travaux visant à créer une partie du 8859 pour le Devanagari ont été officiellement abandonnés en 1997. ISCII et Unicode/ISO/IEC 10646 couvrent le Devanagari. | |
ISO 8859-13 | Latin-7 Bassin de la Baltique |
Ajout de quelques caractères pour les langues baltes qui manquaient dans Latin-4 et Latin-6. Relatif à la version antérieure de Windows-1257. |
ISO 8859-14 | Latin-8 Celtique |
Couvre les langues celtiques telles que le gaélique et le breton. Les lettres galloises correspondent à l’ancienne norme ISO-IR-182 (1994). |
ISO 8859-15 | Latin-9 | Une révision de 8859-1 qui supprime certains symboles peu utilisés et les remplace par le signe de l’euro € et les lettres Š, š, Ž, ž, Œ, œ et Ÿ, ce qui complète la couverture du français, du finnois et de l’estonien. |
ISO 8859-16 | Latin-10 Europe du Sud-Est |
Destiné à l’albanais, au croate, au hongrois, à l’italien, au polonais, au roumain et au slovène, mais aussi au finnois, au français, à l’allemand et au gaélique irlandais (nouvelle orthographe). L’accent est mis davantage sur les lettres que sur les symboles. Le signe de la monnaie est remplacé par le signe de l’euro. |
Windows CP1252 ou ANSI
Windows-1252 ou CP-1252 (page de code 1252) est un codage de caractères à un octet de l’alphabet latin (ISO 8859-1). Cette norme ajoute le symbole de l’euro, ainsi les signes de ponctuation typographiques nécessaires à l’impression de textes traditionnels.
Elle est utilisée par défaut, par exemple, dans les anciens composants de Microsoft Windows pour l’anglais et de nombreuses langues (européennes), notamment l’espagnol, le portugais, le français et l’allemand.
Ce système de codage des caractères est aussi utilisé dans toute l’Amérique, l’Europe occidentale, l’Océanie et une grande partie de l’Afrique.
Windows (et la plupart des autres systèmes d’exploitation) utilise désormais les jeux de caractères Unicode par défaut avec UTF-8.
![Windows CP1252 ou CP-1252 ou ANSI](https://www.malekal.com/wp-content/uploads/2023/05/Code-Page-1252-Windows.jpg)
Vers l’unicode
Avec les besoins d’internationalisation liés à internet apparus dans les années 1995-2000, il a fallu trouvés de nouveaux systèmes de codage de textes plus universelles.
L’Unicode tend à résoudre cela à travers les normes UTF-8 et UTF-16.
Cette première est maintenant configuré par défaut dans les systèmes d’exploitations tels que Windows, Linux ou MacOS.
Liens
L’article ASCII, CP1252, ISO/CEI et pages de codes est apparu en premier sur malekal.com.
0 Commentaires