Використовуючи SQLite3 в Python, я намагаюся зберегти стиснуту версію фрагмента HTML-коду UTF-8.
Код виглядає так:
...
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)))
У цей момент отримати помилку:
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.
Якщо я використовую "текст", а не "BLOB", і не стискаю фрагмент HTML, він працює нормально (хоча db є великим). Коли я використовую 'blob' та стискаю через бібліотеку zlib Python, я отримую вищезазначене повідомлення про помилку. Я озирнувся, але не зміг знайти просту відповідь на цю.