Codage des caractères – Unicode, ASCII et UTF-8

InformatiqueDonnées et binaire15–16 ans

Tapez une ligne de texte pour voir que chaque caractère a un point de code Unicode, que l’UTF-8 stocke sur 1 à 4 octets. Touchez un caractère pour voir comment les bits de son point de code se répartissent dans les octets, et pourquoi é, € et les emoji demandent 2, 3 et 4 octets. L’espace Décoder retransforme une suite d’octets hexadécimaux ou binaires en texte et signale les octets invalides ; l’espace Mojibake montre le texte qui se brouille quand des octets UTF-8 sont lus avec un ancien codage sur un octet.

Leçon : Données texte : ASCII, Unicode, codage UTF-8, caractères et octets

Ce qu’elle montre

L’ordinateur stocke le texte sous forme de nombres. Unicode attribue à chaque caractère un point de code, noté U+ suivi de chiffres hexadécimaux, alors que l’ASCII ne couvre que 128 caractères sur 7 bits. L’UTF-8 stocke chaque point de code sur 1 à 4 octets : le premier octet commence par 0, 110, 1110 ou 11110 pour annoncer la longueur, et chaque octet suivant commence par 10. Un texte ASCII est donc identique en UTF-8, mais les lettres accentuées, les symboles et les emoji demandent plus d’octets que de caractères. Lire des octets UTF-8 avec un codage sur un octet produit un texte brouillé appelé mojibake.

Mode d’emploi

Choisissez un Exemple ou tapez dans la zone Texte, puis touchez la carte d’un caractère pour voir ses bits répartis en octets ; comparez le nombre de caractères et d’octets. Dans Décoder des octets, cliquez sur Prendre du texte ou tapez des octets hexadécimaux, puis sur Octets fautifs. Dans Mojibake, alternez entre Windows-1252 et Latin-1.

Paramètres modifiables

  • Espace de travail Coder le texte en octets, Décoder des octets en texte, Texte brouillé (mojibake)
  • Texte d’exemple Caractères de 1, 2, 3, 4 octets, ASCII seulement, Lettres latines accentuées, Symboles et monnaies, Emoji, Plusieurs écritures
  • Afficher les octets en binaire
  • Mauvais codage utilisé à la lecture Windows-1252, Latin-1 (ISO-8859-1)

Questions à explorer

  1. Pourquoi é occupe-t-il 2 octets en UTF-8 alors que e n’en occupe qu’un ?
  2. Combien d’octets occupe en UTF-8 une ligne de cinq emoji ?
  3. Pourquoi le mot café s’affiche-t-il parfois café sur une page web ?