Que sont les codages de caractères comme ANSI et Unicode, et en quoi diffèrent-ils ?
Publié: 2022-01-29ASCII, UTF-8, ISO-8859… Vous avez peut-être vu ces surnoms étranges flotter, mais que signifient-ils réellement ? Continuez à lire pendant que nous expliquons ce qu'est le codage de caractères et comment ces acronymes se rapportent au texte brut que nous voyons à l'écran.
Blocs de construction fondamentaux
Lorsque nous parlons de langage écrit, nous parlons des lettres comme étant les éléments constitutifs des mots, qui construisent ensuite des phrases, des paragraphes, etc. Les lettres sont des symboles qui représentent des sons. Lorsque vous parlez de langage, vous parlez de groupes de sons qui se réunissent pour former une sorte de sens. Chaque système linguistique a un ensemble complexe de règles et de définitions qui régissent ces significations. Si vous avez un mot, il est inutile à moins que vous ne sachiez de quelle langue il provient et que vous l'utilisiez avec d'autres qui parlent cette langue.
(Comparaison des scripts Grantha, Tulu et Malayalam, Image de Wikipedia)
Dans le monde des ordinateurs, nous utilisons le terme « personnage ». Un caractère est en quelque sorte un concept abstrait, défini par des paramètres spécifiques, mais c'est l'unité fondamentale de sens. Le 'A' latin n'est pas la même chose qu'un 'alpha' grec ou un 'alif' arabe parce qu'ils ont des contextes différents - ils viennent de langues différentes et ont des prononciations légèrement différentes - nous pouvons donc dire qu'il s'agit de caractères différents. La représentation visuelle d'un caractère est appelée « glyphe » et différents ensembles de glyphes sont appelés polices. Les groupes de personnages appartiennent à un « ensemble » ou à un « répertoire ».
Lorsque vous tapez un paragraphe et que vous modifiez la police, vous ne modifiez pas les valeurs phonétiques des lettres, vous modifiez leur apparence. C'est juste cosmétique (mais pas sans importance !). Certaines langues, comme l'égyptien ancien et le chinois, ont des idéogrammes ; ceux-ci représentent des idées entières au lieu de sons, et leurs prononciations peuvent varier dans le temps et la distance. Si vous remplacez un caractère par un autre, vous substituez une idée. C'est plus qu'un simple changement de lettres, c'est un changement d'idéogramme.
Encodage de caractère
(Image de Wikipédia)
Lorsque vous tapez quelque chose sur le clavier ou que vous chargez un fichier, comment l'ordinateur sait-il ce qu'il doit afficher ? C'est à cela que sert l'encodage des caractères. Le texte sur votre ordinateur n'est pas réellement des lettres, c'est une série de valeurs alphanumériques appariées. L'encodage des caractères agit comme une clé pour laquelle les valeurs correspondent à quels caractères, un peu comme la façon dont l'orthographe dicte quels sons correspondent à quelles lettres. Le code Morse est une sorte d'encodage de caractères. Il explique comment les groupes d'unités longues et courtes telles que les bips représentent les caractères. Dans le code Morse, les caractères ne sont que des lettres anglaises, des chiffres et des points. Il existe de nombreux encodages de caractères informatiques qui se traduisent par des lettres, des chiffres, des accents, des signes de ponctuation, des symboles internationaux, etc.
Souvent sur ce sujet, le terme « pages de codes » est également utilisé. Ce sont essentiellement des encodages de caractères utilisés par des entreprises spécifiques, souvent avec de légères modifications. Par exemple, la page de code Windows 1252 (anciennement appelée ANSI 1252) est une forme modifiée de l'ISO-8859-1. Ils sont principalement utilisés comme système interne pour faire référence aux encodages de caractères standard et modifiés spécifiques aux mêmes systèmes. Au début, l'encodage des caractères n'était pas si important car les ordinateurs ne communiquaient pas entre eux. Avec la montée en puissance d'Internet et la mise en réseau devenant un phénomène courant, il est devenu de plus en plus important dans notre vie quotidienne sans même que nous nous en rendions compte.
De nombreux types différents
(Image de sarah sosiak)
Il existe de nombreux encodages de caractères différents, et il y a de nombreuses raisons à cela. Le codage de caractères que vous choisissez d'utiliser dépend de vos besoins. Si vous communiquez en russe, il est judicieux d'utiliser un codage de caractères qui prend bien en charge le cyrillique. Si vous communiquez en coréen, vous voudrez quelque chose qui représente bien Hangul et Hanja. Si vous êtes un mathématicien, alors vous voulez quelque chose qui ait tous les symboles scientifiques et mathématiques bien représentés, ainsi que les glyphes grecs et latins. Si vous êtes un farceur, vous bénéficierez peut-être d'un texte à l'envers. Et, si vous voulez que tous ces types de documents soient visualisés par une personne donnée, vous voulez un encodage assez courant et facilement accessible.
Jetons un coup d'œil à certains des plus courants.
(Extrait du tableau ASCII, Image de asciitable.com)
- ASCII - Le code standard américain pour l'échange d'informations est l'un des codages de caractères les plus anciens. Il a été conçu à l'origine sur la base de codes télégraphiques et a évolué au fil du temps pour inclure davantage de symboles et certains caractères de contrôle non imprimés désormais obsolètes. C'est probablement aussi basique que possible en termes de systèmes modernes, car il est limité à l'alphabet latin sans caractères accentués. Son encodage 7 bits ne permet que 128 caractères, c'est pourquoi il existe plusieurs variantes non officielles utilisées dans le monde.
- ISO-8859 - Le groupe d'encodages de caractères le plus largement utilisé par l'Organisation internationale de normalisation est le numéro 8859. Chaque encodage spécifique est désigné par un numéro, souvent précédé d'un surnom descriptif, par exemple ISO-8859-3 (Latin-3), ISO- 8859-6 (latin/arabe). C'est un sur-ensemble d'ASCII, ce qui signifie que les 128 premières valeurs de l'encodage sont identiques à l'ASCII. Cependant, il s'agit de 8 bits et autorise 256 caractères. Il se construit donc à partir de là et inclut un éventail beaucoup plus large de caractères, chaque encodage spécifique se concentrant sur un ensemble de critères différent. Latin-1 comprenait un tas de lettres et de symboles accentués, mais a ensuite été remplacé par un ensemble révisé appelé Latin-9 qui comprend des glyphes mis à jour comme le symbole de l'euro.

(Extrait de l'écriture tibétaine, Unicode v4, de unicode.org)
- Unicode – Cette norme de codage vise l'universalité. Il comprend actuellement 93 scripts organisés en plusieurs blocs, et bien d'autres sont en préparation. Unicode fonctionne différemment des autres jeux de caractères en ce sens qu'au lieu de coder directement pour un glyphe, chaque valeur est dirigée vers un "point de code". Ce sont des valeurs hexadécimales qui correspondent à des caractères mais les glyphes eux-mêmes sont fournis de manière détachée par le programme, tel que votre navigateur web. Ces points de code sont généralement représentés comme suit : U+0040 (qui se traduit par '@'). Les encodages spécifiques sous la norme Unicode sont UTF-8 et UTF-16. UTF-8 tente de permettre une compatibilité maximale avec ASCII. C'est 8 bits, mais permet tous les caractères via un mécanisme de substitution et plusieurs paires de valeurs par caractère. UTF-16 abandonne la compatibilité ASCII parfaite pour une compatibilité 16 bits plus complète avec la norme.
- ISO-10646 - Il ne s'agit pas d'un encodage réel, juste d'un jeu de caractères Unicode normalisé par l'ISO. C'est surtout important parce que c'est le répertoire de caractères utilisé par HTML. Certaines des fonctions les plus avancées fournies par Unicode qui permettent le classement et les scripts de droite à gauche et de gauche à droite sont manquantes. Pourtant, cela fonctionne très bien pour une utilisation sur Internet car il permet l'utilisation d'une grande variété de scripts et permet au navigateur d'interpréter les glyphes. Cela rend la localisation un peu plus facile.
Quel encodage dois-je utiliser ?
Eh bien, ASCII fonctionne pour la plupart des anglophones, mais pas pour grand-chose d'autre. Plus souvent, vous verrez ISO-8859-1, qui fonctionne pour la plupart des langues d'Europe occidentale. Les autres versions de l'ISO-8859 fonctionnent pour les écritures cyrilliques, arabes, grecques ou autres. Cependant, si vous souhaitez afficher plusieurs scripts dans le même document ou sur la même page Web, UTF-8 permet une bien meilleure compatibilité. Cela fonctionne également très bien pour les personnes qui utilisent la ponctuation appropriée, les symboles mathématiques ou les caractères improvisés, tels que les carrés et les cases à cocher.
(Plusieurs langues dans un seul document, Capture d'écran de gujaratsamachar.com)
Il y a cependant des inconvénients à chaque ensemble. ASCII est limité dans ses signes de ponctuation, il ne fonctionne donc pas incroyablement bien pour les modifications typographiquement correctes. Avez-vous déjà tapé copier/coller à partir de Word uniquement pour obtenir une combinaison étrange de glyphes ? C'est l'inconvénient d'ISO-8859, ou plus exactement, sa supposée interopérabilité avec les pages de code spécifiques au système d'exploitation (nous regardons VOUS, Microsoft !). L'inconvénient majeur d'UTF-8 est le manque de support approprié dans les applications d'édition et de publication. Un autre problème est que les navigateurs n'interprètent souvent pas et affichent simplement la marque d'ordre des octets d'un caractère encodé en UTF-8. Cela entraîne l'affichage de glyphes indésirables. Et bien sûr, déclarer un encodage et utiliser les caractères d'un autre sans les déclarer/référencer correctement sur une page Web rend difficile pour les navigateurs de les restituer correctement et pour les moteurs de recherche de les indexer de manière appropriée.
Pour vos propres documents, manuscrits, etc., vous pouvez utiliser tout ce dont vous avez besoin pour faire le travail. En ce qui concerne le Web, cependant, il semble que la plupart des gens soient d'accord pour utiliser une version UTF-8 qui n'utilise pas de marque d'ordre d'octet, mais ce n'est pas entièrement unanime. Comme vous pouvez le voir, chaque encodage de caractères a sa propre utilisation, son contexte, ses forces et ses faiblesses. En tant qu'utilisateur final, vous n'aurez probablement pas à vous en occuper, mais vous pouvez maintenant faire un pas supplémentaire en avant si vous le souhaitez.