我正在Python中使用SQLite3,试图存储UTF-8 HTML代码段的压缩版本。
代码如下:
...
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.
如果我使用'text'而不是'blob'并且不压缩HTML代码段,则可以正常工作(尽管db很大)。当我使用“ blob”并通过Python zlib库进行压缩时,出现上述错误消息。我环顾四周,但找不到一个简单的答案。