- Représentation du texte en informatique
-
Codage de caractères
- Pour l'action de cacher le sens de l'information, voir chiffrement.
Unicode Jeux de caractères Équivalences normalisées Propriétés et algorithmes - ISO 15924
- Casse
- Ordonnancement UCA
- Texte bi-directionnel
Codage Autres transformations Applications d'échanges de données En télécommunications et en informatique, un codage de caractères est un code qui associe un jeu de caractères d'une langue naturelle (comme un alphabet ou un syllabaire) avec un jeu de quelque chose d'autre, comme par exemple des nombres ou des signaux électriques. Par exemple, le code Morse (qui associe l'alphabet latin à une série de pressions longues et de pressions courtes sur le manipulateur morse du télégraphe) et le code ASCII (qui code les lettres, les chiffres et d'autres symboles comme des entiers codés sur 7 bits) sont des codages de caractères.
Il est indispensable, pour l'échange d'information sur l'Internet, par exemple, de préciser le codage utilisé. Ne pas le faire peut rendre un document difficilement lisible (remplacement des lettres accentuées par d'autres suites de caractères, ...).
Dans certains contextes (en particulier dans les communications et dans l'utilisation de données informatiques), il est important de distinguer un répertoire de caractères, qui est un jeu complet de caractères abstraits qu'un système supporte, et un jeu de caractères codés ou codage de caractères qui spécifie comment représenter un caractère en utilisant un entier.
Sommaire
Différence entre codage de caractères et forme de codage
Le terme codage de caractères est parfois confondu avec la façon dont les caractères sont représentés par une certaine séquence de bits, ce qui implique une forme de codage où le code entier est converti en plusieurs codets (c'est-à-dire des valeurs codées) entiers qui facilitent le stockage dans un système qui gère les données par groupe de bits de taille fixe. Par exemple, les entiers plus grands que 65535 ne peuvent pas être représentés sur 16 bits, c'est pourquoi le codage UTF-16 représente ces grands entiers comme des couples d'entiers inférieurs à 65536 et qui ne sont pas associés à des caractères (par exemple, 10000 - en hexadécimal - devient D800 DC00). Ce plan de codage convertit alors les valeurs de ces codes en une suite de bits et ce en prenant garde à un certain nombre de contraintes comme la dépendance vis-à-vis de la plateforme sur l'ordre final des octets (par exemple, D800 DC00 devient 00 D8 00 DC sur une architecture Intel x86). Un jeu de caractères ou page de code abrège ce procédé en associant directement aux caractères abstraits des séquences de bits spécifiques. L'Unicode Technical Report #17 explique cette terminologie en profondeur et fournit davantage d'exemples.
Ancêtres de l'ASCII
- Tour Chappe (1794)
- Alphabet Morse (1838)
- Code Baudot (1874) : 32 codes (5 bits)
- RADIX-50 (1959) : 40 codes, stocke 3 caractères dans un mot de 16 bits en big endian (PDP-11)
- SIXBIT (1968) : 64 codes (6 bits), stocke six bits caractères par mot mémoire (PDP-10)
Naissance de l'ASCII
Le standard ASCII (American Standard Code for Information Interchange) comporte 128 codes (7 bits). Quelques valeurs courantes :
- ASCII 10 : Saut de ligne abrégé « LF » pour Line Feed
- ASCII 32 : Espace
- ASCII 65 : Lettre A majuscule
ASCII est standardisé en 1968 sous le nom « ANSI X3.4-1968 ». Puis les mises à jour suivent : ANSI X3.4-1977 et finalement ANSI X3.4-1986. On peut enfin le rencontrer sous le nom « US-ASCII ». Il existe en fait des dizaines de variantes de l'ASCII, mais c'est essentiellement la signification des codes de contrôles (caractères non imprimables) qui change.
À l'heure d'Unicode, on utilise la norme ISO 646 pour désigner ASCII.
Évolutions de l'ASCII vers l'Unicode
Le premier codage largement répandu fut l'ASCII. Pour des raisons historiques (les grandes sociétés associées pour mettre au point l'ASCII étaient américaines) et techniques (7 bits disponibles seulement pour coder un caractère), ce codage ne prenait en compte que 27 soit 128 caractères. De ce fait, l'ASCII ne comporte pas les caractères accentués, les cédilles, etc. utilisés par des langues comme le français. Ceci devint vite inadapté et un certain nombre de méthodes ad-hoc furent utilisées pour l'étendre.
L'ISO a donc défini de nouvelles normes, ISO 8859-1, ISO 8859-2, etc. jusqu'à ISO 8859-15. Ces jeux de caractères permettent de coder la plupart des langues occidentales. Le français utilise le plus souvent ISO 8859-1, aussi nommé latin1, ou ISO 8859-15 (latin9), qui a l'avantage de contenir des caractères comme le « œ » ou le « € ». Selon les langues utilisées, on peut trouver des centaines d'autres codages (EUC-JP est par exemple bien adapté au Japonais).
Le besoin de supporter de multiples écritures, incluant celles de la famille CJC, demandait un nombre nettement plus élevé de caractères supportés et nécessitait une approche systématique du codage de caractère utilisé, plutôt que les méthodes ad-hoc précédentes. Le codage Unicode a pour ambition d'être un surensemble de tous les autres, et est souvent représenté en UTF-8 ou en UTF-16.
Le répertoire complet d'Unicode contient près de 100 000 caractères, chacun possédant un unique code entier compris entre 0 et hexadécimal 10FFFF (soit un peu plus de 1,1 million - il existe donc des entiers auxquels aucun caractère n'est associé). Deux autres répertoires fréquemment utilisés, le code ASCII et l'ISO 8859-1, sont respectivement identiques aux 128 et 256 premiers caractères d'Unicode.
Codages de caractères populaires, par pays
Amérique
États-Unis
Canada
- ASCII, standard de compatibilité, sans accent.
- ISO 8859-1
- Unicode, voir aussi UTF-8
à compléter
Union européenne
- UTF-8, notamment utilisé par http://www.europa.eu/
France
- ASCII, standard de compatibilité, sans accent.
- CP850 à l'époque du DOS.
- Windows-1252, pour Windows, encore appelé CP1252 ou Ansinew
- ISO 8859-1, avant l'euro
- ISO 8859-15, après l'euro
- Unicode, voir aussi UTF-8 (reprend tous les caractères des jeux de code précédent).
Grèce
- UTF-8
- ISO 8859-7, avec ou sans l'euro ?
Roumanie
à compléter
Lituanie
- Windows-1257, pour Windows, utilisé par http://www.lrv.lt/
- UTF-8, utilisé pour la langue française par http://www.president.lt/fr/
Afrique
Maghreb
- UTF-8, utilisé sur http://www.maroc.ma/portailinst/Ar
- Windows-1256, utilisé par exemple par http://www.almaghribia.ma/
Asie
Autres codages de caractères populaires
- ISO 646
- ASCII ;
- EBCDIC ;
- ISO 8859
- ISO 8859-1, ISO 8859-2, ISO 8859-3, ISO 8859-4, ISO 8859-5, ISO 8859-6, ISO 8859-7, ISO 8859-8, ISO 8859-9, ISO 8859-10, ISO 8859-11, ISO 8859-13, ISO 8859-14, ISO 8859-15, ISO 8859-16 ;
- Jeu de caractères DOS :
- CP437, CP737, CP850, CP852, CP855, CP857, CP858, CP860, CP861, CP863, CP865, CP866, CP869 ;
- Jeu de caractères Windows :
- Windows-1250, Windows-1251, Windows-1252, Windows-1253, Windows-1254, Windows-1255, Windows-1256, Windows-1257, Windows-1258 ;
- KOI8-R, KOI8-U ;
- ISCII ;
- VISCII ;
- Big5
- HKSCS ;
- Guobiao
- GB2312,
- GB18030 ;
- ISO 2022, Shift-JIS, EUC ;
- Unicode, voir aussi UTF-8 ;
Voir aussi
Articles connexes
Liens externes
- Jeux de caractères enregistrés par l'Internet Assigned Numbers Authority (anglais)
- Unicode Technical Report #17: Modèle de codage de caractères (anglais)
- Convertir des caractères OEM vers ANSI et ANSI vers OEM, code source ASM et binaires
- Portail de l’informatique
- Portail de l’écriture
Catégorie : Codage du texte
Wikimedia Foundation. 2010.