Ticker

6/recent/ticker-posts

Ad Code

Responsive Advertisement

ASCII, CP1252, ISO/CEI et pages de codes

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

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

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

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ï
Pages de code utilisés dans DOS
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)
Pages de code utilisés dans Windows

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.
ISO 8859-12 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.
Jeu de caractères ISO/CEI 8859

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

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.

L’article ASCII, CP1252, ISO/CEI et pages de codes est apparu en premier sur malekal.com.

Enregistrer un commentaire

0 Commentaires