Usando SQLite3 em Python, estou tentando armazenar uma versão compactada de um fragmento de código HTML UTF-8.
O código é parecido com este:
...
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)))
Em que ponto em obter o erro:
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.
Se eu usar 'texto' em vez de 'blob' e não compactar o trecho de HTML, tudo funciona bem (db é muito grande). Quando eu uso 'blob' e faço compactação por meio da biblioteca Python zlib, recebo a mensagem de erro acima. Olhei em volta, mas não consegui encontrar uma resposta simples para essa pergunta.