sqlite3.ProgrammingError: no debe usar cadenas de bytes de 8 bits a menos que use una fábrica de texto que pueda interpretar cadenas de bytes de 8 bits

Usando SQLite3 en Python, estoy tratando de almacenar una versión comprimida de un fragmento de código HTML UTF-8.

El código se ve así:

...
c = connection.cursor()
c.execute('create table blah (cid integer primary key,html blob)')
...
c.execute('insert or ignore into blah values (?, ?)',(cid, zlib.compress(html)))

En ese punto al obtener el error:

sqlite3.ProgrammingError: You must not use 8-bit bytestrings unless you use a text_factory that can interpret 8-bit bytestrings (like text_factory = str). It is highly recommended that you instead just switch your application to Unicode strings.

Si uso 'texto' en lugar de 'blob' y no comprimo el fragmento de HTML, funciona bien (db es demasiado grande). Cuando uso 'blob' y comprimo a través de la biblioteca Python zlib, recibo el mensaje de error anterior. Miré a mi alrededor pero no pude encontrar una respuesta simple para esta.

Respuestas a la pregunta(5)

Su respuesta a la pregunta