Bon ce coup-ci c’est peut être la bonne, l’explication ultime (?) semble être ici.
Pour lire : Connaitre l’encoding (la repr binaire) de ce qu’on recoit, sinon on devine le plus proche et en fonction de la criticité de l’appli on bascule en ‘replace’ ou on gère au try except.
Pour écrire : ustr.encode(‘utf8′)
unicode_str = ascii_str.decode()
unicode_str = utf8_str.decode(‘utf8′)
unicode_str = utf8foireux_str.decode(‘utf8′,’replace’)