Re: encoding encoding ...

Pàgina inicial

Reply to this message
Autor: Edgar Bonet
Data:  
A: guilde
Assumpte: 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