====== Exercice : Fonctions encode et decode ======
Que produisent les commandes suivantes -- //en console Python// :
>>>"école".encode('ascii')
>>> "école".encode('iso-8859-1')
>>> "école".encode('utf-8')
**Comprendre le résultat :**
* Le ''b'' en tête de la réponse, signifie que ce n'est plus un texte mais une suite d'octets (byte).
* Quand ces octets correspondent à de l'ASCII, on donne le caractère correspondant.
* Sinon, on écrit l'octet en hexadécimal. En ISO, le ''é'' était codé par l'octet ''E9''. En UTF-8, ce même ''é'' était codé par les deux octets ''C3 A9''.
On va tenter les opérations inverses :
>>> b'\xc3\xa9cole'.decode('utf-8')
>>> b'\xe9cole'.decode('iso-8859-1')
Sans surprise, le décodage se passe normalement.
Essayons maintenant de décoder de travers :
>>> b'\xc3\xa9cole'.decode('iso-8859-1')
>>> b'\xe9cole'.decode('utf-8')
**Comprendre le résultat :**
* Dans le premier cas, pour ISO, chaque octet est un caractère. ''C3 A9'' sont compris comme ''%%©%%''
* Dans le deuxième cas, UTF-8 rencontre ''E9'' suivi de ''%%'c'%%'', ce qui ne devrait pas arriver, d'où l'erreur.
Vous reconnaissez une situation courante sur internet, quand un problème d'encodage rend les caractères accentués illisibles.