Utilizzando SQLite3 in Python, sto cercando di memorizzare una versione compressa di uno snippet di codice HTML UTF-8.
Il codice ha questo aspetto:
...
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)))
A quel punto a ottenere l'errore:
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 uso "text" invece di "blob" e non comprimo lo snippet HTML, funziona perfettamente (db è troppo grande). Quando uso "blob" e comprimo tramite la libreria zlib di Python, ricevo il messaggio di errore precedente. Mi sono guardato intorno ma non sono riuscito a trovare una risposta semplice per questo.