Quelle est la différence entre le texte ASCII et Unicode ?

Quelle est la différence entre le texte ASCII et Unicode ?

ASCII et Unicode sont deux normes qui font référence à la représentation numérique du texte, en particulier les caractères qui composent le texte. Cependant, les deux normes sont très différentes, avec de nombreuses propriétés reflétant leur ordre de création respectif.





L'Amérique contre l'univers

L'American Standard Code for Information Interchange (ASCII), sans surprise, s'adresse à un public américain, écrivant dans l'alphabet anglais. Il traite des lettres non accentuées, telles que A-Z et a-z, ainsi qu'un petit nombre de symboles de ponctuation et de caractères de contrôle.





En particulier, il n'y a aucun moyen de représenter les mots d'emprunt adoptés dans d'autres langues, tels que café en ASCII, sans les angliciser en substituant des caractères accentués (par exemple, café ). Des extensions ASCII localisées ont été développées pour répondre aux besoins de diverses langues, mais ces efforts ont rendu l'interopérabilité difficile et ont clairement étendu les capacités d'ASCII.





En revanche, l'Universal Coded Character Set (Unicode) se situe à l'opposé de l'échelle d'ambition. Unicode tente de répondre à autant de systèmes d'écriture du monde que possible, dans la mesure où il couvre les langues anciennes et l'ensemble de symboles expressifs préféré de tous, les emoji.

Jeu de caractères ou encodage de caractères ?

En termes simples, un jeu de caractères est une sélection de caractères (par exemple, A-Z) tandis qu'un codage de caractères est un mappage entre un jeu de caractères et une valeur qui peut être représentée numériquement (par exemple, A=1, B=2).



La norme ASCII est effectivement à la fois : elle définit l'ensemble de caractères qu'elle représente et une méthode de mappage de chaque caractère à une valeur numérique.

En revanche, le mot Unicode est utilisé dans plusieurs contextes différents pour signifier différentes choses. Vous pouvez le considérer comme un terme global, comme ASCII, pour désigner un jeu de caractères et un certain nombre d'encodages. Mais, étant donné qu'il existe plusieurs encodages, le terme Unicode est souvent utilisé pour désigner l'ensemble global de caractères, plutôt que la façon dont ils sont mappés.





Taille

En raison de sa portée, Unicode représente beaucoup plus de caractères que l'ASCII. L'ASCII standard utilise une plage de 7 bits pour encoder 128 distincts personnages . Unicode, en revanche, est si volumineux que nous devons utiliser une terminologie différente juste pour en parler !

Unicode s'adresse à 1 111 998 adressables points de code. Un point de code est à peu près analogue à un espace réservé à un personnage, mais la situation est bien plus compliquée que cela quand on commence à fouiller dans les détails !





Une comparaison plus utile est le nombre de scripts (ou de systèmes d'écriture) actuellement pris en charge. Bien entendu, l'ASCII ne gère que l'alphabet anglais, essentiellement l'écriture latine ou romaine. La version d'Unicode produite en 2020 va beaucoup plus loin : elle inclut la prise en charge d'un total de 154 scripts.

Espace de rangement

La plage de 7 bits d'ASCII signifie que chaque caractère est stocké dans un seul octet de 8 bits ; le bit de réserve n'est pas utilisé en ASCII standard. Cela rend les calculs de taille triviaux : la longueur du texte, en caractères, est la taille du fichier en octets.

Vous pouvez le confirmer avec la séquence de commandes bash suivante. Tout d'abord, nous créons un fichier contenant 12 lettres de texte :

pouvez-vous mettre des jeux ps3 dans une ps4
$ echo -n 'Hello, world' > foo

Pour vérifier que le texte est dans l'encodage ASCII, on peut utiliser le déposer commander:

$ file foo
foo: ASCII text, with no line terminators

Enfin, pour obtenir le nombre exact d'octets occupés par le fichier, nous utilisons le Etat commander:

$ stat -f%z foo
12

Étant donné que la norme Unicode traite une gamme de caractères beaucoup plus large, un fichier Unicode prend naturellement plus d'espace de stockage. Le montant exact dépend de l'encodage.

La répétition du même ensemble de commandes d'avant, en utilisant un caractère qui ne peut pas être représenté en ASCII, donne ce qui suit :

$ echo -n '€' > foo
$ file foo
foo: UTF-8 Unicode text, with no line terminators
$ stat -f%z foo
3

Ce caractère unique occupe 3 octets dans un fichier Unicode. Notez que bash crée automatiquement un fichier UTF-8 puisqu'un fichier ASCII ne peut pas stocker le caractère choisi (€). UTF-8 est de loin le codage de caractères le plus courant pour Unicode ; UTF-16 et UTF-32 sont deux codages alternatifs, mais ils sont beaucoup moins utilisés.

UTF-8 est un codage à largeur variable, ce qui signifie qu'il utilise différentes quantités de stockage pour différents points de code. Chaque point de code occupera entre un et quatre octets, avec l'intention que les caractères les plus courants nécessitent moins d'espace, fournissant un type de compression intégrée. L'inconvénient est que déterminer les exigences de longueur ou de taille d'un morceau de texte donné devient beaucoup plus compliqué.

ASCII est Unicode, mais Unicode n'est pas ASCII

Pour une compatibilité descendante, les 128 premiers points de code Unicode représentent les caractères ASCII équivalents. Étant donné que UTF-8 code chacun de ces caractères avec un seul octet, tout texte ASCII est également un texte UTF-8. Unicode est un sur-ensemble d'ASCII.

Cependant, comme indiqué ci-dessus, de nombreux fichiers Unicode ne peuvent pas être utilisés dans un contexte ASCII. Tout caractère hors limites sera affiché de manière inattendue, souvent avec des caractères de substitution complètement différents de ceux qui étaient prévus.

Utilisation moderne

Dans la plupart des cas, ASCII est largement considéré comme une norme héritée. Même dans les situations qui ne prennent en charge que le script latin (où la prise en charge complète des complexités d'Unicode n'est pas nécessaire, par exemple), il est généralement plus pratique d'utiliser UTF-8 et de tirer parti de sa compatibilité ASCII.

comment puis-je obtenir mon propre filtre snapchat

En particulier, les pages Web doivent être enregistrées et transmises en UTF-8, qui est la valeur par défaut pour HTML5. Cela contraste avec le site Web précédent, qui traitait par défaut en ASCII avant que celui-ci ne soit remplacé par Latin 1.

Une norme qui évolue

La dernière révision de l'ASCII a eu lieu en 1986.

En revanche, Unicode continue d'être mis à jour chaque année. De nouveaux scripts, personnages et, en particulier, de nouveaux emoji sont régulièrement ajoutés. Avec seulement une petite fraction de ceux-ci alloués, le jeu de caractères complet est susceptible de croître et de croître dans un avenir prévisible.

En rapport: Les 100 emojis les plus populaires expliqués

ASCII contre Unicode

L'ASCII a rempli sa fonction pendant de nombreuses décennies, mais Unicode l'a désormais remplacé efficacement à toutes fins pratiques autres que les systèmes hérités. Unicode est plus grand et, par conséquent, plus expressif. Il représente un effort collaboratif mondial et offre une flexibilité bien plus grande, bien qu'au détriment d'une certaine complexité.

Partager Partager Tweeter E-mail Qu'est-ce que le texte ASCII et comment est-il utilisé ?

Le texte ASCII semble cryptique, mais il a de nombreuses utilisations sur Internet.

Lire la suite
Rubriques connexes
  • La technologie expliquée
  • Emojis
  • Jargon
  • Culture Web
  • Unicode
A propos de l'auteur Bobby Jack(58 articles publiés)

Bobby est un passionné de technologie qui a travaillé comme développeur de logiciels pendant près de deux décennies. Il est passionné par les jeux, travaillant comme rédacteur de critiques au Switch Player Magazine, et est immergé dans tous les aspects de la publication en ligne et du développement Web.

Plus de Bobby Jack

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Cliquez ici pour vous abonner