在SQLite数据库中存储长HTML字符串会导致未知错误
我在用Python把一些HTML存储到SQLite3数据库里。
当我尝试把HTML插入到我的SQL表格时,出现了一个我不明白的错误,更重要的是,我不知道怎么解决这个问题。
错误信息:
通用异常:你不能使用8位字节字符串,除非你使用一个可以解释8位字节字符串的text_factory(比如text_factory = str)。强烈建议你把应用程序改成使用Unicode字符串。
我插入到表格里的HTML字符串挺长的,大约有700个字符。
你知道哪里出问题了吗?我该怎么解决呢?
1 个回答
0
根据这个问题的回答,你遇到的问题是你试图插入的HTML中包含了一些不符合ASCII编码的字符。如果你调用unicode(my_problematic_html)
,你可能会遇到UnicodeEncodingError
的错误。在这种情况下,你需要通过调用decode
来将有问题的字符串转换为unicode格式:
my_unicoded_html = my_problematic_html.decode("utf-8")
然后将my_unicoded_html
写入数据库。
你可以阅读Python中的Unicode完全解密来了解更多。
* 请注意,你的HTML可能使用了其他编码格式(比如说...字符集?)而不是utf-8
。如果你在Windows上,latin-1
也是一个不错的猜测(或者如果这个HTML可能来自Windows机器的话)。