Exercices#

Exercice 1#

On donne la table ASCII:

image
  1. Que remarque-t-on dans la table ASCII en observant les lettres majuscules et les lettres minuscules ?

  2. Donner les codes binaires des lettres A, a, M, m et W, w.

  3. Quelle observation peut-on faire entre le codage binaire des majuscules et celui des minuscules?

Exercice 2#

Voici le code d’une page web html à copier coller dans un fichier avec l’extension html.

<!DOCTYPE html>
<html lang="fr">
    <head>
        <meta charset="iso-8859-1">
        <style>
            body{font-size:1.5em;}
        </style>
    </head>
    <body>

        <h1>L'encodage de caractères</h1>
        <p>Une page web doit déclarer l'encodage de caractères utilisé pour que le navigateur s'adapte et affiche correctement les contenus. Si la norme aujourd'hui est <strong>utf-8</strong>, il existe encore de nombreux sites qui ne l'utilisent pas! Du coup, certains caractères peuvant s'afficher de façon incorrecte à cause d'un problème de déclaration non reconnue par le navigateur.</p>
        <p>En général, il faut juste modifier cette déclaration dans le fichier pour rendre l'affichage lisible. Cela coûte 0 €.</p>
        
        <h2>Exercice</h2>
        <ol>
            <li>Pouvez-vous reconnaitre les caract&egrave;res mal affich&eacute;s ?</li>
            <li>La derni&egrave;re phrase "Cela co&ucirc;te 0 &euro;." est mal affich&eacute;e. Sur combien d'octets sont encod&eacute;s les caract&egrave;res mal affich&eacute;s en utf-8 ?</li>
            <li>Selon vous, quel est l'encodage utilis&eacute; et d&eacute;clar&eacute; sur cette page web ?</li>
            <li>Certains navigateurs permettent de changer l'encodage de texte. Est-ce le cas pour votre navigateur ?</li>
        <li>Pour corriger l'erreur d'affichage, il faut &eacute;diter le fichier et modifier l'encodage. Faites la modification et v&eacute;rifier que le navigateur affiche correctement la page.</li>   
        </ol>
    </body>
    

Ce fichier html est téléchargeable : fichier html

Ouvrir ce fichier avec un navigateur et répondre aux questions posées.

Exercice 3#

Un caractère a comme point de code U+005A.

  1. A quelle plage appartient ce point de code ?

  2. Combien d’octets faut-il pour l’encoder en UTF-8 ?

  3. Ce caractère est-il un caractère de la table ASCII? Si oui, en déduire son encodage en binaire.

Exercice 4#

Le caractère de point de code U+FFFD appartient à la plage \([U+0800 ; U+FFFF]\). Ce caractère est donc encodé en UTF-8 sur trois octets.

  1. Quel est la forme d’encodage de ce caractère en UTF-8 ?

  2. Convertir en binaire le point de code de ce caractère.

  3. En déduire l’encodage de ce caractère en UTF-8, c’est à dire tel qu’il est encodé en machine.

  4. Convertir l’encodage binaire en hexadécimal.

Exercice 5#

Dans la langue française, on retrouve des ligatures, c’est à dire que certaines lettres sont collées l’une à l’autre. Par exemple, le o et le e sont collés dans les mots nœud, œil et œuvre.

La ligature œ est apparue dans la table ISO 8859-15 avec le code hexadécimal BD.

Dans la norme Unicode, cette ligature a pour point de code U+0153.

On rappelle que le codage binaire en UTF-8 se fait en suivant les indications du tableau ci-dessous.

Plage

Ecriture binaire

Nombre de bits

U+0000 à U+007F

\(0xxx xxxx\)

7 bits

U+0080 à U+07FF

\(110x xxxx\) \(10xx xxxx\)

11 bits

U+0800 à U+FFFF

\(1110 xxxx\) \(10xx xxxx\) \(10xx xxxx\)

16 bits

U+10000 à U+10FFFF

\(1111 0xxx\) \(10xx xxxx\) \(10xx xxxx\) \(10xx xxxx\)

21 bits

  1. Combien faut-il d’octets pour coder la ligature œ en UTF-8

  2. Après avoir converti le point de code en binaire, en déduire le codage binaire en UTF-8 de la ligature œ.