Re: encoding encoding ...

Page principale

Répondre à ce message
Auteur: Edgar Bonet
Date:  
À: guilde
Sujet: Re: encoding encoding ...
Re!

Gédéon Légaut a écrit :
> tu m'as mis le doute quand j'ai vu : Gédéon Légaut a écrit ;-)


C'était une référence à de la littérature jeunesse. ;-) [1]

> <programme python>[...]


Bon, je ne connais rien à Python, mais je crois que je devine le
problème.

Dès qu'on code les caractères avec plus de 8 bits, il faut bien
distinguer les octets et les caractères. Et donc aussi les tableaux
d'octets (« byte array » en anglais) et les chaînes de caractères
(« string »). La fonction chr(), à son nom, on devine qu'elle sert à
générer des caractères. Et de fait :

    $ python3 -q
    >>> chr(0xc3)
    'Ã'
    >>> chr(0xa9)
    '©'
    >>> 


La fonction binaire_to_utf8() découpe une chaîne de bits par groupes
de 8 (donc des octets) et interprète chaque octet comme un caractère
ayant pour numéro de code (« code point ») la valeur numérique de
l'octet. En d'autres mots elle interprète la séquence d'octets comme une
chaîne en ISO-Latin-1 : codage identité dans [0..255].

Ce que tu veux c'est plutôt générer un tableau d'octets (byte array). Je
ne sais pas comment on fait ça en Python. Ensuite tu peux sortir le
tableau d'octets tel quel sur la console en mode binaire, ou bien
demander à Python de l'interpréter comme un texte codé en UTF-8.

Il faudrait des connaisseurs en Python pour te guider plus loin.

À+,

Edgar.

[1] https://www.apprendre-en-ligne.net/bloginfo/index.php/2009/01/21/151-martine-ecrit-en-utf-8