Le codage de l'information concerne les moyens de formaliser l'information afin de pouvoir la manipuler, la stocker ou la transmettre. Il ne s'intéresse pas au contenu mais seulement à la forme et à la taille des informations à coder

Sous-catégories

Le codage numérique d'un texte

 

1- Codage ASCII

Au commencement, chaque caractère était identifié par un code unique qui est un entier naturel et la correspondance entre le caractère et son code était appelée un Charset. Le code n'étant pas utilisable tel quel par un ordinateur qui ne comprend que le binaire, il fallut donc représenter les codes par des octets, et cela fut appelé Encoding.
Dans de nombreux grimoires anciens on découvre le code ASCII qui était utilisé pour représenter du texte en informatique. ASCII signifiait American Standart Code for Information Interchange. Il paraît que ce code est toujours en usage...

Les créateurs de ce code limitèrent le nombre de ses caractères à 128 (c'est à dire 2 puissance 7), pour qu'ils puissent être codés avec seulement 7 bits : les ordinateurs utilisaient des cases mémoires de un octet , mais ils réservaient toujours le 8e bit pour le contrôle de parité (c'est une sécurité pour éviter les erreurs, qui étaient très fréquentes dans les premières mémoires électroniques).

Quel est le code (en hexadécimal, décimal et binaire) du caractére A, du caractère 1, du caractère * ?

Activité - Taille d'un texte

Quelle est la taille (en octets) de la phrase : "Enfin ! Je viens de comprendre ce qui s'est produit."

Vérifiez en tapant cette phrase avec un éditeur de texte quelconque comme le bloc-notes de Windows, enregistrez-le en tant que "texte brut" (le plus souvent avec une extension .txt) en ensuite vérifiez la taille en octet du fichier obtenu (cliquer sur l'icone du fichier puis sur "Propriétés").

Faites ensuite la même chose mais en utilisant un logiciel de traitement de texte (LibreOffice Writer ou Microsoft Word).

Activité - Utilisation de la table ASCII

  • A l'aide de la table ASCII, coder en binaire la phrase suivante : "L'an qui vient !".
  • Voici maintenant une exclamation codée en binaire :

    01000010   01110010   01100001   01110110   01101111   00101100

    Retrouver cette exclamation !
  • Peut-on coder en binaire la phrase : "Un âne est-il passé par là?" à l'aide de la table ASCII ? (Justifier la réponse)

 

2 - Quand la table ASCII ne suffit plus

Il va donc falloir étendre la table ASCII pour pouvoir coder les nouveaux caractères. Les mémoires devenant plus fiables et, de nouvelle méthodes plus sûres que le controle de parité ayant été inventées, le 8ème bit a pu être utilisé pour coder plus de caractères.

Micro-activité

Combien le fait d'avoir 8 bits amène-t-il de nouvelle possibilités ?

On élimine ainsi l'inconvénient très gênant de ne coder que les lettre non accentuées, ce qui peut suffire en anglais, mais pas dans les autres langues (comme le français et l'espagnol par exemple). On a pu aussi rajouter des caractères typographiques utiles comme des tirets de diverses tailles et sortes.

Par exemple, en français les caractères é, è, ç, à, ù, ô, æ, œ

 

3 - De la difficulté de convenir d'une norme

Le fait d'utiliser un bit supplémentaire a bien entendu ouvert des possibilités mais malheureusement tous les caractères ne pouvaient être pris en charge. La norme ISO 8859-1 appelée aussi Latin-1 ou Europe occidentale est la première partie d'une norme plus complète appelée ISO 8859 (qui comprend 16 parties) et qui permet de coder tous les caractères des langues européennes. Cette norme ISO 8859-1 permet de coder 191 caractères de l'alphabet latin qui avaient à l'époque été jugés essentiels dans l'écriture, mais omet quelques caractères fort utiles (ainsi la ligature œ n'y figure pas).

Dans les pays occidentaux, cette norme est utilisée par de nombreux systèmes d'exploitation, dont UNIX, Windows. Elle a donné lieu à quelques extensions et adaptations, dont Windows-1252 (appelée ANSI) et ISO 8859-15(qui prend en compte le symbole € créé après la norme ISO 8859-1). C'est source de grande confusion pour les développeurs de programmes informatiques car un même caractère peut être codé différemment suivant la norme utilisée.

On commence par se connecter au site suivant : https://wiki.inria.fr/sciencinfolycee/Convertisseur_texte/binaire/hexa_en_ligne

Voici le code binaire d'un texte :
01000010   01110010   01100001   01110110   01101111   00101100   00100000   01110100   01110101   00100000
01100001   01110011   00100000   01110000   01110010   01100101   01110011   01110001   01110101   01100101
00100000   01110100   01101111   01110101   01110100   00100000   01110100   01110010   01101111   01110101
01110110   11101001   00101110   00101110   00101110
  1. A l'aide du logiciel fourni sur le site, retrouver le texte contenu dans le code
  2. Ce logiciel est-il compatible avec la norme ISO-8859-1, ISO 8859-15 ou Windows 1252 ? (Justifier la réponse)
  3. Trouver une astuce pour savoir laquelle des trois est utilisée !

 

4 - Quand le net s'affole...

Nous avons tous un jour reçu un courriel bizarre ou lu une page web telle que celle-ci :

Bien que ceci soit de moins en moins fréquent (nous comprendrons pourquoi), on trouve parfois des phrases dans lesquelles certains caractères sont remplacés par d'autres qui n'ont rien à voir et qui empêchent la lecture et la compréhension du texte. Il s'agit ici d'un problème d'encodage et de décodage. La personne qui écrit le texte utilise une norme différente de celle utilisée par celui qui le lit ! Lorsque c'est un courriel on a la plupart du temps affaire à un spam venant de l'étranger, ce n'est pas sans raison...

 

5 - Et l'Unicode vint...

La globalisation des échanges culturels et économiques a mis l'accent sur le fait que les langues européennes coexistent avec de nombreuses autres langues aux alphabets spécifiques voire sans alphabet. La généralisation de l'utilisation d'Internet dans le monde a nécessité une prise en compte d'un nombre beaucoup plus importants de caractères d'écriture (par exemple le mandarin possède plus de 5000 caractères !). Une autre motivation pour cette évolution résidait dans les possibles confusions dues au trop faible nombre de caractères pris en compte ; ainsi, les symboles monétaires des différents pays n'étaient pas touts représentés dans le système ISO 8859-1, de sorte que les ordres de paiement internationaux transmis par courier électronique risquaient d'être mal compris. La norme Unicode a donc été créée pour permettre le codage de textes écrits quelque soit le système d'écriture utilisé. On attribue à chaque caractère un nom, une position normative et un bref descriptif qui seront les mêmes quelque soit la plate-forme informatique ou le logiciel utilisés. Un consortium composé d'informaticiens, de chercheurs, de linguistes, de personnalités du monde de la politique... s'occupe donc d'unifier toutes les pratiques en un seul et même système : l'Unicode.

L' Unicode est une table de correspondance Caractère-Code (Charset), et l'UTF-8 est l'encodage correspondant (Encoding) le plus répandu. Maintenant, par défaut, les navigateurs Internet utilisent le codage UTF-8 et les concepteurs de sites pensent de plus en plus à créer leurs pages web en prenant en compte cette même norme. Voilà pourquoi il y a de moins en moins de problèmes de compatibilité.

Activité - Codage et Internet

Ouvrez cette page avec Firefox. Dans la barre d'outils on peut voir à « Affichage », « Encodage des caractères » que c'est l'UTF-8 qui est sélectionné par défaut. Changeons ceci et sélectionnons Europe Occidentale (Windows). Les petits caractères désagréables apparaissent. Que s'est-il passé ? En allant dans « Outils », « Informations sur la page », on voit que cette page est encodée en UTF-8. Lorsque le lecteur est lui aussi en UTF-8 tout va bien. Dès qu'on change le paramètre du lecteur (ici, le navigateur), des incompatibilités apparaissent.

Faire apparaître, à présent le code source de cette page. Où se situe l'information relative à l'encodage ?

On peut aussi dans « Affichage », « Codage », sélectionner Grec (ISO) et se rendre compte en lisant le texte, que le « à » a été remplacé par un « L » à l'envers dit Gamma.

Une autre petite expérience

Sous Windows aller dans « Démarrer », « Exécuter », taper « charmap ». Cocher « Affichage avancé », sélectionner « Windows Occidental » (c'est à peu de choses près l'ISO 8859-1) dans « Jeu de caractères » regarder le nombre de caractères proposés, puis sélectionner « Unicode ». Il y a maintenant un très grand nombre de caractères disponibles, beaucoup de langues sont représentées. Sous Linux on pourra utiliser « gucharmap », et pour OSX (Apple) il faut chercher le « palette de caractères ».

 

Quelques précisions sur l'UTF-8

Des règles, encore des règles

L'encodage UTF-8 utilise 1, 2, 3 ou 4 octets en respectant certaines règles :

  • Un texte en ASCII de base (appelé aussi US-ASCII) est codé de manière identique en UTF-8. On utilise un octet commençant par bit 0 à gauche (bit de poids fort).
  • Les octets ne sont pas remplis entièrement. Les bits de poids fort du premier octet forment une suite de 1 indiquant le nombre d'octets utilisés pour coder le caractère. Les octets suivants commencent tous par le bloc binaire 10.
  • Dans la norme ISO 8859-1 le « é » est codé 1110 1001, en UTF-8 on le code sur deux octets en respectant les précisions apportées dans le tableau ci-dessus. Les bits imposés sont en gras, le code du « é » est écrit en commençant par la droite et l'octet de gauche est rempli par des zéros (en italique). Voila ce que l'on obtient :11000011   10101001. On pourra remarquer que le codage ISO s'inscrit bien dans le codage UTF-8.
Le symbole € correspond à la valeur décimale 8364.
  1. Convertir cette valeur en binaire
  2. Combien d'octets doit-on utiliser en UTF-8 pour coder ce nombre convenablement (les moitiés sont interdites) ?
  3. Donner le codage UTF-8 correspondant.
Quel est le nombre maximal de caractères que l'on peut encoder grâce à l'UTF-8 lorsqu'on utilise les 4 octets ?

Free Joomla! template by L.THEME