Chaîne d'octets python encoder et décoder

Je suis en train de convertir la réception d'une chaîne d'octets qui contient des caractères non-ascii dans un valide chaîne utf-8 que j'ai dump est comme json.

b = '\x80'
u8 = b.encode('utf-8')
j = json.dumps(u8)

Je m'attendais j à '\xc2\x80 mais j'obtiens:

UnicodeDecodeError: 'ascii' codec can't decode byte 0x80 in position 0: ordinal not in range(128)

Dans ma situation, 'b' est à venir à partir de mysql via google protocol buffers et est rempli avec des données blob.

Des idées?

EDIT:
J'ai des trames ethernet qui sont stockés dans une table mysql comme un blob (s'il vous plaît, tout le monde, restez sur le sujet et éviter de discuter de pourquoi il y a des paquets dans un tableau). Le tableau de classement est utf-8 et l'db (couche de sqlalchemy, non-orm) est saisissant les données et la création de structures (google protocol buffers) qui stockent le blob comme un python 'str'. Dans certains cas, j'utilise le protocole de tampons directement avec toute la question. Dans d'autres cas, j'ai besoin d'exposer les mêmes données via json. Ce que j'ai remarqué c'est que lorsque json.décharges() fait sa chose, '\x80' peut être remplacé par la disposition invalide char unicode (\ufffd iirc)

source d'informationauteur kung-foo