【问题标题】:Storing long string of HTML in SQLite database causes unknown error在 SQLite 数据库中存储长的 HTML 字符串会导致未知错误
【发布时间】:2011-09-24 03:26:46
【问题描述】:

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

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

错误字符串:

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

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

知道出了什么问题以及如何解决这个问题吗?

【问题讨论】:

标签: python sql sqlite unicode


【解决方案1】:

查看this question 的答案,您的问题似乎是您尝试插入的 HTML 中包含未映射到 ASCII 的字符。如果您致电unicode(my_problematic_html),您可能会收到UnicodeEncodingError。在这种情况下,您需要通过调用 decode 将有问题的字符串表示形式转换为 unicode:

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

然后将my_unicoded_html 写入数据库。

你会想阅读Unicode In Python Completely Demystified

* 请注意,您的 HTML 可能被编码为 utf-8 以外的其他编解码器(格式?...字符集?)。 latin-1 也是一个不错的猜测,如果您使用的是 Windows(或者 HTML 可能来自 Windows 机器)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-11
    • 2018-07-29
    • 2011-03-01
    • 2018-01-06
    • 2012-07-22
    • 2014-12-18
    • 1970-01-01
    相关资源
    最近更新 更多