Que sont les encodages de caractères comme ANSI et Unicode, et en quoi diffèrent-ils?
ASCII, UTF-8, ISO-8859… Vous avez peut-être déjà vu ces étranges monikers 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 affiché à l'écran.
Blocs de construction fondamentaux
Lorsque nous parlons de langue écrite, nous parlons de lettres comme étant des blocs de construction de mots, qui construisent ensuite des phrases, des paragraphes, etc. Les lettres sont des symboles qui représentent des sons. Lorsque vous parlez de langue, vous parlez de groupes de sons qui se réunissent pour former un sens. Chaque système linguistique possède un ensemble complexe de règles et de définitions qui régissent ces significations. Si vous avez un mot, il est inutile à moins de savoir de quelle langue il provient et de l'utiliser avec d'autres personnes qui parlent cette langue..
(Comparaison des scripts Grantha, Tulu et Malayalam, Image de Wikipedia)
Dans le monde de l'informatique, nous utilisons le terme «personnage». Un caractère est en quelque sorte un concept abstrait, défini par des paramètres spécifiques, mais il s'agit de l'unité fondamentale de la signification. Le latin 'A' n'est pas la même chose qu'un grec 'alpha' ou un arabe 'alif' car ils ont des contextes différents - ils sont 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 s'appelle un «glyphe» et différents ensembles de glyphes sont appelés des polices. Les groupes de caractères 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'ancien égyptien et le chinois, ont des idéogrammes; ceux-ci représentent des idées entières au lieu de sons, et leur prononciation peut varier dans le temps et la distance. Si vous substituez un caractère à un autre, vous substituez une idée. C'est plus que changer de lettre, c'est changer d'idéogramme.
Encodage de caractère
(Image de Wikipedia)
Lorsque vous tapez quelque chose sur le clavier ou 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 une lettre, mais une série de valeurs alphanumériques appariées. Le codage des caractères agit comme une clé pour laquelle les valeurs correspondent aux caractères, de la même manière que l'orthographe dicte quels sons correspondent à quelles lettres. Le code Morse est une sorte d’encodage de caractères. Il explique comment des groupes d'unités longues et courtes, tels que des bips sonores, représentent des caractères. En 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 marques d'accent, des signes de ponctuation, des symboles internationaux, etc..
Souvent sur ce sujet, le terme «pages de code» est également utilisé. Ce sont essentiellement des encodages de caractères, tels qu’utilisés par des entreprises spécifiques, souvent avec de légères modifications. Par exemple, la page de codes Windows 1252 (anciennement ANSI 1252) est une forme modifiée de la norme ISO-8859-1. Ils sont principalement utilisés comme système interne pour faire référence à des codages 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. Avec la montée en puissance d'Internet et la mise en réseau courante, Internet est devenu un élément de plus en plus important de notre vie quotidienne sans même que nous nous en rendions compte..
Beaucoup de types différents
(Image de sarah sosiak)
Il existe de nombreux encodages de caractères différents, et ce pour de nombreuses raisons. Le type de codage que vous choisissez d'utiliser dépend de vos besoins. Si vous communiquez en russe, il est logique 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 mathématicien, vous voulez quelque chose qui présente bien tous les symboles scientifiques et mathématiques, 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 les types de documents soient visualisés par une personne donnée, vous voulez un encodage assez commun et facilement accessible..
Jetons un coup d'oeil à certains des plus communs.
(Extrait de la table ASCII, image de asciitable.com)
- ASCII - Le code standard américain pour l'échange d'informations est l'un des anciens codages de caractères. Initialement conçu à partir de codes télégraphiques, il a évolué avec le temps pour inclure davantage de symboles et des caractères de contrôle non imprimés obsolètes. C'est probablement aussi fondamental que vous pouvez obtenir en termes de systèmes modernes, car il est limité à l'alphabet latin sans caractères accentués. Son codage 7 bits ne permet que 128 caractères. C'est pourquoi plusieurs variantes non officielles sont utilisées dans le monde..
- ISO-8859 - Le groupe de codages de caractères le plus utilisé par l'Organisation internationale de normalisation est le numéro 8859. Chaque codage spécifique est désigné par un numéro, souvent précédé d'un préfixe descriptif, par ex. 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 du codage sont identiques à l'ASCII. Toutefois, il est en 8 bits et permet 256 caractères. Il est donc basé sur une large palette de caractères, chaque codage étant ciblé sur un ensemble de critères différent. Latin-1 comprenait un groupe 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 tels que le symbole de l'euro..
(Extrait du script tibétain, Unicode v4, de unicode.org)
- Unicode - Cette norme de codage vise l'universalité. Il comprend actuellement 93 scripts organisés en plusieurs blocs, et beaucoup plus dans les travaux. Unicode fonctionne différemment des autres jeux de caractères, car 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 décrits comme suit: U + 0040 (qui se traduit par '@'). Les codages spécifiques au standard Unicode sont UTF-8 et UTF-16. UTF-8 tente de permettre une compatibilité maximale avec ASCII. C'est 8 bits, mais permet pour tous les caractères via un mécanisme de substitution et plusieurs paires de valeurs par caractère. UTF-16 dit la compatibilité ASCII parfaite pour une compatibilité 16 bits plus complète avec la norme.
- ISO-10646 - Ce n'est pas un encodage réel, mais 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 permettant le classement et le traitement de droite à gauche avec les scripts de gauche à droite sont manquantes. Néanmoins, il 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 facilite un peu la localisation.
Quel encodage devrais-je utiliser??
ASCII fonctionne pour la plupart des anglophones, mais pas pour beaucoup d’autres. Le plus souvent, vous verrez ISO-8859-1, qui fonctionne pour la plupart des langues d'Europe occidentale. Les autres versions de la norme ISO-8859 fonctionnent pour les scripts cyrillique, arabe, grec 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 des signes de ponctuation, des symboles mathématiques ou des caractères improvisés, tels que des carrés et des cases à cocher..
(Plusieurs langues dans un seul document, capture d'écran de gujaratsamachar.com)
Il y a cependant des inconvénients à chaque ensemble. Le caractère ASCII étant limité par des signes de ponctuation, il ne fonctionne pas incroyablement bien pour les modifications typographiques correctes. Avez-vous déjà copié / collé à partir de Word pour avoir une étrange combinaison de glyphes? C'est l'inconvénient d'ISO-8859, ou plus exactement son supposée interopérabilité avec des pages de codes spécifiques à un système d'exploitation (vous, Microsoft!). L'inconvénient majeur de UTF-8 est le manque de prise en charge appropriée des applications d'édition et de publication. Un autre problème est que les navigateurs souvent n'interprètent pas et affichent simplement la marque d'ordre des octets d'un caractère codé UTF-8. Cela entraîne l'affichage de glyphes indésirables. Et bien sûr, déclarer un codage et utiliser des caractères d'un autre sans les déclarer / référencer correctement sur une page Web empêche les navigateurs de les afficher correctement et les moteurs de recherche de les indexer correctement..
Pour vos propres documents, manuscrits, etc., vous pouvez utiliser tout ce dont vous avez besoin pour faire le travail. Cependant, en ce qui concerne le Web, il semble que la plupart des gens s'accordent pour utiliser une version UTF-8 qui n'utilise pas de marque d'ordre des octets, mais ce n'est pas tout à fait unanime. Comme vous pouvez le constater, chaque encodage de caractères a son 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 en avant supplémentaire si vous le souhaitez..