在SQLite数据库中存储长字符串HTML会导致未知错误

时间:2011-09-24 03:26:47

标签: python sql sqlite unicode

我在Python中的SQLite3数据库中存储了一些HTML。

当我在我的SQL表中插入一些HTML时,我得到一个错误,我不明白错误&更重要的是如何解决问题。

错误字符串:

  

异常一般:除非使用可解释8位字节串的text_factory(如text_factory = str),否则不得使用8位字节串。强烈建议您只需将应用程序切换为Unicode字符串。

我插入表格的HTML字符串很长(大约700个字符)。

任何想法都错了&我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

查看this question的答案,看起来您的问题是您正在尝试插入带有不映射到ASCII的字符的HTML。如果您致电unicode(my_problematic_html),您可能会收到UnicodeEncodingError。在这种情况下,您需要通过调用{/ p>来decode将有问题的字符串表示形式为unicode

my_unicoded_html = my_problematic_html.decode("utf-8")

然后将my_unicoded_html写入数据库。

您需要阅读Unicode In Python Completely Demystified

*请注意,您的HTML 可能在其他编解码器(格式?... charset?)中编码而不是utf-8。如果你在Windows上(或者如果HTML可能来自Windows机器),latin-1也是一个很好的猜测。