Bonjour,
J'ai un petit souci d'encodage que je n'arrive pas à résoudre :
<programme python>
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
def repr_bin2(s, coding) :
return ' '.join('{0:08b}'.format(c) for c in s.encode(coding))
s = 'é'
print(s.encode('utf-8'))
print(repr_bin2(s, 'utf8'))
binaire = repr_bin2(s, 'utf8')
print(binaire_to_utf8 (binaire))
</programme python>
renvoie
b'\xc3\xa9'
1100001110101001
é # là je m'attendais à é
J'ai utilisé emacs et ai exécuté le programme dans le terminal (python fichier.py).
En cherchant du côté de locale :
LANG=fr_FR.UTF-8
LANGUAGE=
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"
LC_ALL=
Est-ce normal que LANGUAGE et LC_ALL soient vides ?
Est-ce que cela peut venir d'Emacs ? Il n'y a pas un encodage utf8, mais toute une floppée :
utf-8-hfs utf-8-hfs-dos
utf-8-hfs-mac utf-8-hfs-unix
utf-8-mac utf-8-unix
utf-8-with-signature utf-8-with-signature-dos
utf-8-with-signature-mac utf-8-with-signature-unix
Dans la barre d'info en bas d'Emacs, j'ai bien un U qui m'indique que c'est codé en utf8. Quand j'essaye ALT-x revert-buffer-with-coding-system et que je choisis une des différentes valeurs d'utf8 ci-dessus, cela ne change rien.
Une idée ?
Merci
Gédéon Légaut